假设我有一个像下面这样的HTML表单,并希望将textfields中的值传递给JS变量。
<form name="testform" action="" method="?"
<input type="text" name="testfield1"/>
<input type="text" name="testfield2"/>
</form>
之前我只将值传递给PHP中的变量。在javascript中执行此操作时,是否需要方法?主要问题是,如何完成?
答案 0 :(得分:3)
以下是几个例子:
使用Javascript:
document.getElementById('name_of_input_control_id').value;
jQuery的:
$("#name_of_input_control_id").val();
基本上你是使用Javascript / jQuery从DOM中提取输入控件的值。
答案 1 :(得分:0)
在“提交”中尝试以下内容:
var input = $("#testfield1").val();
答案 2 :(得分:0)
答案都是正确的,但是如果你不把你的代码放到document.ready函数中你可能会遇到问题...如果你的代码块在html部分之上,你将找不到任何带id的输入字段,因为在这里那一刻它不存在......
document.addEventListener('DOMContentLoaded', function() {
var input = document.getElementById('name_of_input_control_id').value;
}, false);
的jQuery
jQuery(document).ready(function($){
var input = $("#name_of_input_control_id").val();
});
答案 3 :(得分:0)
如果您只是使用Javascript中的文本字段,则实际上不需要method
或action
属性
在表单中添加submit
按钮和onsubmit
处理程序,
<form name="testform" onsubmit="return processForm(this)">
<input type="text" name="testfield1"/>
<input type="text" name="testfield2"/>
<input type="submit"/>
</form>
然后在您的Javascript中,您可以使用此processForm
函数
function processForm(form) {
var inputs = form.getElementsByTagName("input");
// parse text field values into an object
var textValues = {};
for(var x = 0; x < inputs.length; x++) {
if(inputs[x].type != "text") {
// ignore anything which is NOT a text field
continue;
}
textValues[inputs[x].name] = inputs[x].value;
}
// textValues['testfield1'] contains value of first input
// textValues['testfield2'] contains value of second input
return false; // this causes form to NOT 'refresh' the page
}