使用jQuery更新输入值,旧值提交到表单

时间:2012-09-28 21:32:19

标签: jquery html forms input

我有一个带有id / name league_id输入的表单:

<form accept-charset="UTF-8" action="/user" method="post">
    <div style="margin:0;padding:0;display:inline">
        <input name="utf8" type="hidden" value="✓">
        <input name="authenticity_token" type="hidden" value="bb92urX83ivxOZZJzWLJMcr5ZSuamowO9O9Sxh5gqKo=">
    </div>
    <input id="league_id" name="league_id" type="text" value="11">
    <select class="sport_selector" id="sport_type_id" name="sport_type_id">
        <option value="5" selected="selected">Football</option>
        <option value="25">Women's Soccer</option>
        <option value="30">Volleyball</option>
        <option value="10">Men's Soccer</option>
    </select>
    <input name="commit" type="submit" value="Save changes">
</form>

在我的网页的另一部分,我有一个下拉菜单,当更改时,会清除league_id的值:

$("#sport_type_id").change(function(){
    $("#league_id").val(null)
    $(this).parents('form:first').submit()
});

如果我调试此页面,我可以看到从文本框中擦除的值,但是在提交表单时,我的控制器总是获得旧值。

更新

我的错。我有多个标记为league_id的字段。不确定到底发生了什么,但是当我输入错误信息时,我开始得到非常奇怪的结果,一旦我确保所有ID都是唯一的,我就开始得到预期的结果。

抱歉面掌

我尝试更改输入的名称并获得相同的结果。

2 个答案:

答案 0 :(得分:0)

认为这是罪魁祸首

$("#league_id").val(null)..

如果在 null 之后检查DOM,则值字段仍然存在,可能是DOM尚未刷新..

因此,当发布表单时,可能会发送值=“11”。

为什么不尝试完全删除该属性,然后再试一次..

 $('#league_id').removeAttr('value');

答案 1 :(得分:0)

我自己的错,在元素中发生了名称冲突