#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 /