【问题标题】:Can't change form input value using JavaScript无法使用 JavaScript 更改表单输入值
【发布时间】:2015-02-22 23:45:29
【问题描述】:

我正在尝试在我的表单上实现一个简单的反垃圾邮件字段,服务器生成一个随机字符串,将其发送给用户,然后 JavaScript 在提交之前反转该字符串。如果字符串不匹配,则提交被丢弃为垃圾邮件。问题是我似乎无法让 JavaScript 或 jQuery 反转输入值。

   $(document.ready(function() {
    var reverse = $('#simple').val().split("").reverse().join("");
    document.getElementById('simple').setAttribute('value', reverse);
}))

使用

$('#simple').val(reverse);

代替setAttribute方法也失败了。

输入字段本身是:

        <input type="text" id="simple" name="simple" value="abcde" />

jQuery 已包含在内,如果我通过开发人员工具控制台输入相同的代码,我可以使输入值反转,但页面本身不起作用。谢谢!

【问题讨论】:

  • setAttribute('value', reverse) 是问题所在,你想要的是道具,而不是属性

标签: javascript jquery forms input


【解决方案1】:

你有一个错误,在文档准备回调中,除了它很好

$(document).ready(function() {
  //      ^ need to close the parenthesis here 
  var reverse = $('#simple').val().split("").reverse().join("");
  $('#simple').val(reverse)
    //or document.getElementById('simple').setAttribute('value', reverse);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="simple" name="simple" value="abcde" />

【讨论】:

    【解决方案2】:
    $(document.ready(function() {
        var reverse = $('#simple').val().split("").reverse().join("");
        document.getElementById('simple').value =  reverse;
    });
    

    【讨论】:

      【解决方案3】:
      var test= document.getElementById("mytext");
      test.value = "My default value";
      

      【讨论】:

        【解决方案4】:

        如果 id simple 是唯一的,$('#simple').val(reverse); 应该可以工作。(没有其他具有相同 id 的对象)。你也可以使用$('input[name=simple]').val(reverse);

        查看jQuery change input text value

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-22
          • 2020-10-29
          • 2012-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多