jQuery val()indexOf不起作用

时间:2011-09-30 20:25:51

标签: jquery contains indexof

如果输入值包含某个单词但尝试做某事但这不起作用:

   var formMain =  $('#MainForm :input[name="Search"]');
    if ((formMain).value.indexOf('word') >= 0) {
    alert('HAS THIS WORD IN IT!');

示例表单:

<form onsubmit="return OnSubmitSearchForm(event, this);" action="/searchresults.asp" id="MainForm" name="MainForm" method="post" class="search_results_section">
            <input type="hidden" value="word" name="Search">
            <input type="hidden" value="" name="Cat">
</form>

3 个答案:

答案 0 :(得分:7)

您的标题提及val(),但您实际上并未使用它。 formMain是一个jquery对象,没有value,您应该使用val()

var formMain =  $('#MainForm :input[name="Search"]');
if (formMain.val().indexOf('word') >= 0) {
    alert('HAS THIS WORD IN IT!');
}

另请注意,formMain是一个误导性的变量名称,因为它不是主要形式,而是包含搜索输入的jquery对象。

答案 1 :(得分:1)

$(function(){
  var formMain =  $('#MainForm input[name="Search"]').val();
  if (formMain.indexOf('word') >= 0) {
    alert('HAS THIS WORD IN IT!');
  }
});

答案 2 :(得分:0)

可能你在使用选择器时出错了,应该只使用带选择器的.val。这里有一些东西可供你查看http://jsfiddle.net/sahil20grover1988/V2dsn/3/