Jquery更改隐藏表单字段值

时间:2010-09-12 19:37:15

标签: jquery forms

我有这个代码,但它不能在我的localhost上工作,我不知道为什么。任何人都可以对此有所了解吗?

(脚本在头部,其他代码在正文中)

<script type="text/javascript">
$(function(){
 $(input[name='jsenabled']).val('1');

});
</script>



 <input type="hidden" name="jsenabled" value="0" />
    <label for="signup-email">Sign up for email offers, news &amp; events:</label>
    <input type="text" name="signup-email" id="signup-email" />
    <input type="submit" id="signup-button" value="Sign Me Up!" />
    <p id="signup-response"></p>
</fieldset>

EDITED 奇怪的是我已添加此代码来测试值是否已更改并且它确实启动了警报,但是firebug没有注册更改。

$("input[name='jsenabled']").val("1");
    if($("input[name='jsenabled']").val = '1') {
    alert('frf');
    }

5 个答案:

答案 0 :(得分:10)

  1. jQuery选择器是字符串:必须引用它们

  2. jQuery.val()是一个方法,而不是属性。不要忘记括号。

  3. 比较运算符为==而非=

  4. 你基本上需要对语法更加小心。

答案 1 :(得分:3)

尝试$("input[name='jsenabled']").val('1');注意我添加的双引号。

编辑查看Nick和Alvaro答案中的更多问题。

答案 2 :(得分:3)

你需要选择器周围的引号,如下所示:

$(function(){ 
  $("input[name='jsenabled']").val('1'); 
});

同样在检查值时,请使用括号,如下所示:

if($("input[name='jsenabled']").val() == '1') {
  alert('frf');
}

.val()是一个函数,在没有任何参数的情况下调用获取值。

更广泛地说,请注意控制台,因为Firebug应该在这里抛出你的JavaScript错误,控制台(显示错误)是你最好的资源。

答案 3 :(得分:1)

你能试试这个$('input[name="jsenabled"]').val('1');

吗?

答案 4 :(得分:0)

Álvaro通常是正确的,但即使使用正确的语法,您也无法更改隐藏字段的值,但如果我认为正确的话,jQuery会将它们视为只读。

几个星期前我自己遇到了这个问题,我的解决方案是css类'隐藏'的正常输入

.hidden {
  display: none;
}

之后,您只需更改隐藏输入字段的值:

jQuery('#field_id.hidden').val('new_field_value');