问题描述
如何获取 HTML 表单的值传递给 JavaScript?
它是否正确?我的脚本从文本框中收到两个参数,一个来自下拉框。
<body>
<form name="valform" action="" method="POST">
Credit Card Validation: <input type="text" id="cctextboxid" name="cctextbox"><br/>
Card Type: <select name="cardtype" id="cardtypeid">
<option value="visa">Visa</option>
<option value="mastercard">MasterCard</option>
<option value="discover">Discover</option>
<option value="amex">Amex</option>
<option value="diners">Diners Club</option>
</select><br/>
<input type="button" name="submit" value="Verify Credit Card" onclick="isValidCreditCard(document.getElementById('cctextboxid').value,document.getElementById('cardtypeid').value)" />
</body>
最佳解决思路
HTML:
<input type="text" name="name" id="uniqueID" value="value" />
JS:
var nameValue = document.getElementById("uniqueID").value;
次佳解决思路
document.forms 将在您的页面上包含一个表单数组。您可以通过这些表单循环查找您想要的具体形式。
var form = false;
var length = document.forms.length;
for(var i = 0; i < length; i++) {
if(form.id == "wanted_id") {
form = document.forms[i];
}
}
每个表单都有一个元素数组,然后您可以循环查找所需的数据。你也可以通过名称访问它们
var wanted_value = form.someFieldName.value;
jsFunction(wanted_value);
第三种解决思路
以下是 W3Schools 的一个例子:
function myFunction() {
var elements = document.getElementById("myForm").elements;
var obj ={};
for(var i = 0 ; i < elements.length ; i++){
var item = elements.item(i);
obj[item.name] = item.value;
}
document.getElementById("demo").innerHTML = JSON.stringify(obj);
}
演示可以找到 here 。
第四种思路
如果要检索表单值 (如使用 HTTP POST 发送的值),可以使用
JavaScript 的
new FormData(document.querySelector('form'))
form-serialize(https://code.google.com/archive/p/form-serialize/)
serialize(document.forms[0]);
jQuery 的
$("form").serializeArray()
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。