首先,感谢您花时间看我的问题。真。这是我的问题。我为我正在制作的网站制作了一个fancybox搜索页面。在fancybox中获取搜索结果一切正常。
但是,如果访问者只需点击search
,它就会返回网站上的所有项目。我想要的是使表格如此,访问者has
在搜索进行搜索之前至少输入3个字符。如果访问者未输入3个或更多字符,fancybox将提示please enter at least 3 or more characters
。
我查看了stackoverflow并找到了这段代码:
$( document ).ready(function() {
input_value = $.trim($('#searchkey').val());
if(input_value == ''){
alert('Enter some value');
return false; //Does not submit the form
}else{
//perform your code if it should not be empty.
}
});
所以我将代码放在正确的位置,如下所示:
$( document ).ready(function() {
input_value = $.trim($('#str').val());
if(input_value == ''){
alert('Enter some value');
return false; //Does not submit the form
} else {
$(function() {
$('#search').on('submit', function(e) {
e.preventDefault();
jQuery.fancybox({
width: 600,
height: 600,
openEffect: 'fade',
closeEffect: 'fade',
href: 'search-post-results.php',
type: "ajax",
ajax: {
type: "POST",
data: {
value: $('#str').val()
}
}
});
});
});
}
});
我没有收到任何语法错误,但如果我重新加载页面,它会给我正确的警告。但如果输入了no
个字符,那就是那个。所以我改变了这一行:
if(input_value == ''){
到:
if(input_value == '2'){
确定我应该设置一个值。但这没有任何作用。有没有人有类似的脚本/片段做同样的事情?或者知道为什么这不起作用?
这是HTML(没什么特别的):
<form id="search">
<table>
<tr>
<td>
<input type="text" name="s" id="str" placeholder="Search...">
</td>
<td>
<button class="btn form-button btn-default">
<i class="fa fa-search"></i>
</button>
</td>
</tr>
</table>
</form>
再次见到你的时间。
答案 0 :(得分:3)
使用length
属性。
if( input_value.length < 3 ){
// error message if characters are less than 3
} else {
// continue the search
}
答案 1 :(得分:1)
试试这个, 另请更改验证位置,因为如果您重新加载,则会始终显示警报。因此,您可以在提交操作后进行验证。
$(function() {
$('#search').on('submit', function(e) {
e.preventDefault();
if(input_value.length < 3 ){
// Show your alert message.
}else{
// Here you start Ajax Request.
}
});
});