-2

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

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

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

我试过这个:

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

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

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

4

5 回答 5

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单击生成的那个。我不认为你想那样做。

于 2013-02-18T13:45:36.010 回答
0

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

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

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

于 2013-02-18T13:45:59.027 回答
0

i在你的情况下是event......所以它不能把值放在隐藏字段中......定义一个变量 i 在 click 或一个全局变量......试试这个

$("#button").click(function() { 
    var i="somevalue"; //value u want
    $("#myHiddenField").val(i); 
    $("#form").submit(); 
}); 
于 2013-02-18T13:47:05.613 回答
0

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

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

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

于 2013-02-18T13:48:16.273 回答
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(); 
});
于 2013-02-18T13:49:54.613 回答