HTML输入在更改时不更新值属性

Spe*_*ger 3 html forms

OOPS,因为"名称"字段位于顶部,所以我正在测试它,结果发现这是唯一一个有问题的字段.必须与使用"名称"作为名称有关...


由于某种原因,我的表单中的输入标记在更改时不会更新value属性查看实际元素(而不是JavaScript).发布到服务器的数据是"value"属性的原始值,而不是文本框中的文本.

表单中的textareas工作正常,我已经检查了javascript解雇"onchange",我找不到任何...请帮助!

这是HTML:

<form action="" method="post">
<div id="group-1" class="group case">
  <a class="heading open">heading</a>
  <input name="editform[0][class]" value="case" type="hidden">
  <input name="editform[0][id]" value="2" type="hidden">
  <div class="field">
    <label>Name</label>
    <input class="text" name="editform[0][name]" value="Mike Escarcaga" type="text" >
  </div>
  <div class="field">
    <label>Title</label>
    <input class="text" name="editform[0][title]" value="General Manager" type="text" >
  </div>
  <!-- repeated for each field -->
  <div class="field" >
    <label >Text</label>
    <textarea class="ltext" name="editform[0][text]" >
      Blah HTML, and more blah...
    </textarea>
  </div>
</div>
<!-- repeated for each group in the form (editform[1], editform[2], etc.) -->
</form>
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 11

value属性包含输入的默认值,而不是实时值.

DOM值属性包含实时值.

  • +1因为它引导我得到答案,如果其他人遇到问题,我使用jQuery"attr()"方法获取值,它始终是原始/默认值.我需要使用"prop()"方法来获取活动的DOM值. (5认同)
  • 或者`.val()`方法,我倾向于文本输入. (3认同)
  • 对我来说.val()也给我初始值,而.prop('value')也给我初始值。有人知道为什么吗?在我的情况下,唯一不同的是文本框位于模式弹出窗口“ Y”中,而“ Y”再次位于模式弹出窗口“ X”中。然后单击“ Y”按钮中的javascript代码 (2认同)

小智 8

我同意@Quentin。DOM 包含实时值,HMTL 输入包含输入的默认值。要更改输入的默认值,请设置元素的defaultValue属性:

document.getElementById("myText").defaultValue = "Goofy";
Run Code Online (Sandbox Code Playgroud)