$(&#39;#<form name =“”>输入[name = <field>]&#39;)。val()返回undefined?

时间:2018-01-24 06:39:34

标签: javascript jquery

<s:form action="editDispositionMatrix" namespace="/" 
id="editDispositionMatrix" >
  <s:textarea name="otherReason"  cols="50" rows="5" ></s:textarea>
</s:form>


<script type="text/javascript" charset="utf-8">

  $('#editDispositionMatrix').submit(function(){

    var otherReason1 = $('#editDispositionMatrix 
    input[name=otherReason]').val();       //getting undefined
    var otherReason2 =  $('[name="otherReason"]').val();                                   
    //getting right value
  });

</script>

这是jsp中的示例代码,它是一个模型窗口。它通常使用$('#editDispositionMatrix input[name=otherReason]').val()来读取用户输入的文本区域中的值。现在我们正在获得未定义的价值。但是当我们使用$('[name="otherReason"]').val();时,我们得到了正确的值。这个问题的根本原因是什么?

2 个答案:

答案 0 :(得分:1)

原因是您没有<input>可供选择。使用

$('#editDispositionMatrix textarea[name=otherReason]').val()

代替

答案 1 :(得分:1)

原因是因为它不是input字段,而是textarea,它应该像

$('#editDispositionMatrix textarea[name=otherReason]')