簡體   English   中英

JS:“ TypeError:'未定義'不是對象”

[英]JS: “TypeError: 'undefined' is not an object”

var name = $("input[#name]").value;
var email = $("input[#email]").value;
var msg = $("input[#msg]").value;

var nameLength = name.length;
var emailLength = email.length;
var msgLength = msg.length;

如您所見,我要做的就是獲取#email字段的值的長度。 它適用於其他兩個字段,但不適用於電子郵件字段。 它給出“ TypeError:'未定義'不是對象”。

有什么原因嗎?

我在Safari和Google Chrome中都嘗試過,但都給出了相同的錯誤。

HTML:

<div class="form-group">
  <label class="col-md-4 control-label" for="email">Email</label>  
  <div class="col-md-5">
    <input id="email" name="email" type="text" placeholder="Enter your email address
    here" class="form-control input-md" required="">
  </div>
</div>

您正在嘗試在jQuery對象上使用DOM屬性。 如果您有jQuery對象,則必須使用jQuery方法.val() ,而不是DOM屬性.value或者必須進入jQuery對象以獲得DOM對象,然后可以在其上使用DOM屬性。

我建議您將其更改為使用jQuery方法獲取值:

var name = $("input[#name]").val();
var email = $("input[#email]").val();
var msg = $("input[#msg]").val();

或者,出於說明目的,這也將起作用(從jQuery對象中獲取DOM對象並使用.value ):

var name = $("input[#name]")[0].value;
var email = $("input[#email]")[0].value;
var msg = $("input[#msg]")[0].value;

根據您添加到問題中的HTML,您還需要修復選擇器。 要定位id="xxx" ,只需使用$("#xxx") 選擇器的其他部分不需要,因為id在整個文檔中必須是唯一的。 因此,如果您所有的HTML都像問題中顯示的電子郵件部分一樣工作,則可以使用以下代碼:

var name = $("#name").val();
var email = $("#email").val();
var msg = $("#msg").val();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM