从表单javascript传递变量值

时间:2012-12-02 20:31:26

标签: javascript html forms

假设我有一个像下面这样的HTML表单,并希望将textfields中的值传递给JS变量。

<form name="testform" action="" method="?"
<input type="text" name="testfield1"/>
<input type="text" name="testfield2"/>
</form>

之前我只将值传递给PHP中的变量。在javascript中执行此操作时,是否需要方法?主要问题是,如何完成?

4 个答案:

答案 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中的文本字段,则实际上不需要methodaction属性

在表单中添加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
}