禁止在空表单字段上搜索

时间:2010-11-11 19:20:59

标签: javascript

我有一个表单字段,我必须看到只有当有一些时才点击搜索按钮 表单字段中的数据。 以下是代码。

    <script type="text/javascript">
        function IsEmptySearch(TxtField){
        var re = /\s/g; //any white space
        var str = TxtField.replace(re, "");
        if (str.length == 0) {
        return true;
        } else {return false;}
        } 
    </script>

<div>
<form id="formsearch" name="formsearch"  />
<input type="text" name="TxtField" maxlength="255" class="findSearch" value="Enter Search..." 
  onfocus="if (this.className=='findSearch') { this.className = ''; this.value = ''; }"
  onblur="if (this.value == '') { this.className = 'findSearch'; this.value = 'Enter Search...'; }"/>
<input type="button" value="Search" onclick="return IsEmptySearch()" >
</form>
</div>

即使搜索字段为空,表单也会提交,但上述操作无效。

On Debug错误显示在“onclick =”返回IsEmptySearch()“”  善意的帮助。

2 个答案:

答案 0 :(得分:1)

尝试

onclick="return !IsEmptySearch()"

如果搜索为空,您的函数会返回true,但要停止提交表单,您必须返回false。您也可以重写和重命名您的功能。试试这个,在搜索框中输入内容,看看是否可以提交。

答案 1 :(得分:1)

将功能更改为以下内容:

<script type="text/javascript">
function IsEmptySearch(txtField, defaultText){
    var re = /\s/g; //any white space
    defaultText = defaultText || "";
    var txt = txtField.value.replace(re,"");
    var ret = txt != ""  && txt != defaultText.replace(re,"");
    return ret;
}
</script>

将按钮更改为以下内容:

<input type="submit" value="Search" 
                  onclick="return IsEmptySearch(aTextField,'Enter Search...')" >
如果文本框具有默认提示文本,

也不会触发。