将input元素的值设置为变量的值

时间:2013-02-18 13:43:36

标签: jquery click field hidden

我有这个用于填充隐藏字段的jQuery脚本:

$("#button").click(function() {
    $("#myHiddenField").val(4);
    $("#form").submit(); 
}); 

我想用变量替换硬编码的“4”:

我试过了:

$("#button").click(function(i) { 
    $("#myHiddenField").val(i); 
    $("#form").submit(); 
}); 

但它不起作用,我不知道如何传递参数i。这部分代码有什么问题?

我有4个不同的按钮。我不想为每个按钮创建4个功能点击。在这种情况下,i是隐藏字段的值,用于标识单击了哪个按钮。

5 个答案:

答案 0 :(得分:0)

如果您想将i设置为该值,则:

var i
$("#button").click(function() { 
        i=$("#myHiddenField").val(); 
        $("#form").submit(); 
}); 

val()默认返回元素的值。

如果您想将值设置为i,则需要先设置i

var i=4
$("#button").click(function() { 
        $("#myHiddenField").val(i); 
        $("#form").submit(); 
}); 

在您当前的代码中,i会发送到点击生成的Event。我认为你不想这样做。

答案 1 :(得分:0)

click事件处理程序的参数是jQuery Event Object,而不是自定义变量。你想做的很简单:

var someVariable = 4;
$("#button").click(function() { 
    $("#myHiddenField").val( someVariable ); 
    $("#form").submit();
});

当您绑定单击处理程序或在全局范围内(或在处理程序本身内,取决于值的来源)时,请确保在父作用域中定义了someVariable

答案 2 :(得分:0)

i在你的情况下是event ...所以它将无法将值放在隐藏字段中...在单击或全局变量内定义变量... 试试这个

$("#button").click(function() { 
    var i="somevalue"; //value u want
    $("#myHiddenField").val(i); 
    $("#form").submit(); 
}); 

答案 3 :(得分:0)

您可以使用属性存储临时值并稍后访问它:

// set value
$("#button").attr("temp", 4);
...
$("#button").click(function() { 
        $("#myHiddenField").val($(this).attr("temp")); 
        $("#form").submit(); 
}); 

您也可以使用全局变量,但不建议这样做。

答案 4 :(得分:0)

这取决于您想从中获取价值的位置。传递给匿名函数的是事件对象,而不是普通变量。试试这个:

$("#button").click(function(event) {

    var x = getValueFromSomewhere();

    $("#myHiddenField").val(x);
    $("#form").submit(); 
});

或者这个:

var y = getValueFromSomewhere();

$("#button").click(function(event) {

    // The anonymous function can access variables from the outer scope.
    $("#myHiddenField").val(y);
    $("#form").submit(); 
});