У меня есть следующий код:Как предотвратить удары ввода представить, если текстовое поле пустым
<form method="post" action="http://www.mypage.com/search.aspx" id="aspnetForm">
<input name="ctl00$centerContent$txtSearchPhysician" id="ctl00_centerContent_txtSearchPhysician" type="text" size="25" />
<input name="ctl00$centerContent$btnPhysicianSearch" id="ctl00_centerContent_btnPhysicianSearch" type=button value="Search" />
</form>
<script>
$(document).ready(function(){
jQuery('input[id="ctl00_centerContent_txtSearchPhysician"]').keyup(function() {
var raw_text = jQuery(this).val();
var return_text = raw_text.replace(/[^a-zA-Z]/g,'');
jQuery(this).val(return_text);
});
jQuery('input[id="ctl00_centerContent_txtSearchPhysician"]').keydown(function(e) {
jQuery(this).css('background-color', '#FFFFFF');
});
jQuery('input[id="ctl00_centerContent_btnPhysicianSearch"]').click(function() {
var raw_text = jQuery('input[id="ctl00_centerContent_txtSearchPhysician"]').val();
if (!raw_text) {
alert ('Search Query is Blank');
jQuery('input[id="ctl00_centerContent_txtSearchPhysician"]').css('background-color', '#FF3333');
jQuery('input[id="ctl00_centerContent_txtSearchPhysician"]').focus();
}
if (raw_text) {
//alert (raw_text); //displays the search string
//document.location.href="http://www.google.com"; //redirects to google.com
window.document.cookie='postbackcookie=';
window.document.location.href="http://www.mypage.com?searchtext=" + raw_text;
}
});
});
</script>
Почти все работает отлично, за исключением одной вещи. Если текстовое поле имеет фокус, и я нажимаю Enter, не вводя ничего, он просто перезагружает страницу действия.
Как изменить код, поэтому, когда это произошло, фон текстового поля становится красным, а ввод - нулевым. Единственный раз, когда вводится текст в текстовом поле, есть ли строка?
Вы должны изменить JQuery селекторы из JQuery ('вход [ID = "ctl00_centerContent_txtSearchPhysician"]') до $ ('# ctl00_centerContent_txtSearchPhysician'), нет никаких причин, для указания типа ввода, так как вы используете уникальные идентификаторы. – Marko
Вы можете использовать event.preventDefault() в событии нажатия кнопки, если значение текстового поля является пустой строкой. –
Щелчок кнопки работает нормально. У меня просто проблема с нажатием enter в текстовом поле:/ – Si8