考虑以下脚本来检查搜索表单是否为空。搜索按钮的ID为:mainSearch
和searchIcon
<script type="text/javascript">
$(document).ready(function() {
$('#mainSearch').click(function() {
if($("input[type=text][name=search]").val() == "" || $("input[type=text][name=search]").val() == 'Напишете търсената дума'
|| $("input[type=text][name=search]").val() == 'Enter search keywords here')
return false;
});
});
$(document).ready(function() {
$('#searchIcon').click(function() {
if($("input[type=text][name=q]").val() == "" )
return false;
});
});
</script>
HTMLscheme:
<div class="searchForm">
<form action="search.php" method="get">
<input type="text" name="search" id="searchForm" value="<?php if(checkBgLanguage()) echo 'Напишете търсената дума'; else echo 'Enter search keywords here'; ?>" autocomplete="off"
maxlength="35"/>
<a href="search.php"><img src="css/imgs/searchIcon.png" width="24" height="24" id="mainSearch"/></a>
</form></div>
出于某种原因,第二个功能是在每个页面上工作。第一个功能仅适用于主页。另一个问题是按下输入按钮;没有人应该提交明确的表格。非常感谢任何帮助。
答案 0 :(得分:4)
您应该将这两个函数放在一个$(document).ready(){}
块中,因为每个块都会通过分别绑定事件来减慢页面速度。您也可以使用简写$(function(){});
。从那里,尝试event.preventDefault()
而不是返回false:
$(function(){
$('#mainSearch').click(function(event) {
var val = $("input[type=text][name=search]").val();
if(val == "" || val == 'Напишете търсената дума'
||val == 'Enter search keywords here') {
event.preventDefault();
}
});
$('#searchIcon').click(function(event) {
var val = $("input[type=text][name=q]").val();
if(val == "" ) {
event.preventDefault();
}
});
});
答案 1 :(得分:1)
您只需要一个$(document).ready(function() {
尝试更改为:
<script type="text/javascript">
var texts = [ 'Enter search keywords here'
,'Напишете търсената дума'];
$(document).ready(function() {
$('form').bind('submit', function(e) {
var errors = 0;
if('' === $("input[type=text][name=q]").val()) {
errors++;
}
$(texts).each(function(i,x) {
if(x === $("input[type=text][name=q]").val()) {
errors++;
};
)};
if(0 != errors) {
e.preventDefault();
return false;
}
});
});
</script>