jquery attr无法正常工作

时间:2016-08-31 14:07:15

标签: javascript php jquery ajax

我正在尝试在表单中使用ajax,以便它使用php脚本检查数据库然后我想更改我的表单中的一些disabeled字段的值,但它似乎工作,虽然ajax工作和jquery也是。

继承剧本

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<meta charset="utf-8" />
<title>F2 Form</title>
  <script type="text/javascript">
        function checkDB(){
            var itr = document.getElementById( "itr" ).value;
            $.ajax({
                type : 'POST',
                url : 'checkDB.php',
                data : {itr: itr},
                success: function(response){
                   $("v_id").attr("value","hi");
                  }
            });
       }
</script>

继承人html表单摘录:

<form name="f2" method="post" action="form_submission2.php">
    ITR:<input type="text" name="itr" id="itr" onkeypress="checkDB()" /><br />
    Vehicle ID:<input type="text" name="id" id="v_id" value="" disabled><br />

2 个答案:

答案 0 :(得分:2)

value 属性不是输入的值,而是输入的默认值。 value 属性是输入值。

要设置值,请使用val

$("v_id").val("hi");

(或者您可以使用.prop("value", "hi"),但在惯用的情况下,您可以使用val。)

但请注意,您错过了#选择器上的id,因此:

$("#v_id").val("hi");

RE

  

仍然无法正常工作

是的,确实如此:

function checkDB() {
  var itr = document.getElementById("itr").value;
  // Simulate ajax with timeout
  setTimeout(function() {
    $("#v_id").val("hi");
  }, 10);
}

checkDB();
<form name="f2" method="post" action="form_submission2.php">
  ITR:
  <input type="text" name="itr" id="itr" onkeypress="checkDB()" />
  <br />Vehicle ID:
  <input type="text" name="id" id="v_id" value="" disabled>
  <br />
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:2)

请检查成功下的代码:

更改

 $("v_id").attr("value","hi");

 $("#v_id").val("hi");