jQuery val() Индекс неработоспособности

#jquery #contains #indexof

#jquery #содержит #индекс #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>
  

Ответ №1:

В вашем названии упоминается 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. Я успешно протестировал это. Также спасибо за разъяснения!

Ответ №2:

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

Ответ №3:

возможно, вы делаете ошибку с селектором и должны использовать.значение только с селектором …. вот кое-что для вас, проверьте это http://jsfiddle.net/sahil20grover1988/V2dsn/3 /