jQuery +隐藏的输入字段

时间:2009-08-29 21:11:59

标签: php javascript jquery

我遇到的问题的简化版本:

这是我的HTML表单:

<form enctype="multipart/form-data" method="post" action="/controller/action">
<input type="text" name="title" id="title" value="" class="input-text" />
<input type="hidden" name="hidden_field" value="" id="hidden_field" />
<input type="submit" name="submit_form" id="submit_form" value="Save" class="input-submit" />
</form>

这是JavaScript:

$(document).ready(function() {    
    $('#submit_form').hover(function() {
        $('#hidden_field').attr('value') = 'abcd';
    });
});

这是PHP后端的一个非常简短的版本:

if (isset($_POST)) {
    var_dump($_POST);
}

我所做的是将#submit_form按钮悬停几秒钟以确保jQuery代码已执行,然后我提交表单并:

  • $ _POST ['hidden_​​field']是空的!

为什么?当我在悬停事件中使用jQuery将其插入隐藏字段时,它应该包含'abcd'。

4 个答案:

答案 0 :(得分:4)

设置值的正确方法:

 $('#hidden_field').val('abcd');

参考:http://docs.jquery.com/Attributes/val

答案 1 :(得分:3)

声明

$('#hidden_field').attr('value') = 'abcd';

不正确。当你将rvalue(jQuery对象)分配给另一个rvalue(一个字符串)时,你应该得到一个错误。 (赋值运算符左侧需要左值(例如变量)。)

你可能想要:

$('#hidden_field').val('abcd');

或:

$('#hidden_field').attr('value', 'abcd');

(前者更像是jQuery-ish,但对于这种情况,两者都是等价的。)

答案 2 :(得分:1)

它是:

$('#hidden_field').attr('value','abcd');

答案 3 :(得分:0)

由于这些是隐藏元素,请务必使用查看页面源的其他内容检查这些内容,例如按F12,使用alert()等检查。原始html页面的来源不会反映通过其进行的更改Java脚本。