输入文本框 Returns 未在 Javascript 中定义

Input Text Box Returns Undefined in Javascript

这是我的 HTML:

<form name='cred' class="panel-body2">
  <div class="form-group">
    <label for='addjidlbl'> Username (JID):</label>
    <input type='text' id='addjid' />
  </div>
  <input type='button' id='add' value='add' />
</form>     

这里是 JavaScript:

$('#add').bind('click', function() {
  var jid = $('#addjid').value; 
  alert(jid);
  //var jid=document.getElementById('addjid').value;    
  var jid2 =$('#addjid').get(0).value; 
  alert(jid2);
  //  //$('#addjid').get(0).value; 
  log('jid=>'+jid);
  var data = document.getElementById("addjid").value; //$(".panel.panel-default2#addjid").value;
  alert(data);

  alert("type=>"+ typeof(jid));
  addRoster(jid);
});

function addRoster(jid) {
  log('addRoster=>' + jid);
}

我得到的是两个 "undefined" 的消息框和第三个 "type=>undefined" 的消息框。为什么我获取不到addjid文本框的输入文本?

如果我更改 var jid = $('#addjid').get(0).value;,即使文本框有值,jid 也只是空白。为什么?

将 .value 更改为 .val(),如

$('#addjid').value

应该是

$('#addjid').val()

如果我没理解错的话,你想要:

$('#addjid').val()

由于您使用 id 来获取值,因此您将只有一个元素具有给定的 id。当您执行 .get(0) 或任何索引时,您通常会尝试从给定的值数组中获取值。例如

<li>first</li> //0
<li>second</li> //1

在这样的结构中,你会做类似的事情 $("li").get(0)

它将为您提供第一个带 in li 的项目。

要获得您需要使用的值 .val()

所以你可以使用

 $('#addjid').val()

希望对您有所帮助。

快乐学习:)

在这里你可以使用 .val()

在文本框中添加一些文本,然后 单击添加按钮,将弹出警报

$('#add').on('click', function() {
  alert($('#addjid').val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name='cred' class="panel-body2">
    <div class="form-group">
      <label for='addjidlbl'> Username (JID):</label>
      <input type='text' id='addjid' />
    </div>
  <input type='button' id='add' value='add' />
</form>