我有这个用于填充隐藏字段的jQuery脚本:
$("#button").click(function() {
$("#myHiddenField").val(4);
$("#form").submit();
});
我想用变量替换硬编码的“4”:
我试过了:
$("#button").click(function(i) {
$("#myHiddenField").val(i);
$("#form").submit();
});
但它不起作用,我不知道如何传递参数i
。这部分代码有什么问题?
我有4个不同的按钮。我不想为每个按钮创建4个功能点击。在这种情况下,i
是隐藏字段的值,用于标识单击了哪个按钮。
答案 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();
});