Jquery - 有时是工作脚本

时间:2011-11-27 07:40:49

标签: jquery html document

考虑以下脚本来检查搜索表单是否为空。搜索按钮的ID为:mainSearchsearchIcon

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

出于某种原因,第二个功能是在每个页面上工作。第一个功能仅适用于主页。另一个问题是按下输入按钮;没有人应该提交明确的表格。非常感谢任何帮助。

2 个答案:

答案 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>