快速的jQuery问题

时间:2011-03-03 17:58:42

标签: jquery

我有这段代码:

<a href="javascript:$('#searchPost').submit()">Search</a>

这会提交我的搜索表单。我试图阻止它在空的时候提交。我知道内联很难做到,但是当我尝试从链接中取出JS代码时,即使内联代码调用链接之外的函数,它也会停止工作。

我被告知要使用此代码:

$('#searchPost').submit(function(event) {
    if ($(this).find('#searchBox').val() == '') {
       event.preventDefault();
    }
});

但我不知道该把它放在哪里才能使它发挥作用。当然,内联,该代码并没有做我想要的。我完全把它放在我的文档的头部,它也没有太大变化。有什么帮助吗?

6 个答案:

答案 0 :(得分:3)

您需要将其包裹在$(document).ready(function(){});$(function(){});

的简写中

答案 1 :(得分:0)

if ($(this).find('#searchBox').val() == '') {
     return false;
    }

答案 2 :(得分:0)

将此添加到函数:

return false;

event.preventDefault() vs. return false

答案 3 :(得分:0)

我认为你想要捕获$('#searchPost')。click()事件,而不是submit()事件。

尝试捕获$ .click(),然后检查val(),然后有条件地执行$ .submit()。

确保$('#searchPost')也存在......

答案 4 :(得分:0)

如果没有看到任何代码,我会说安全的做法是将代码放在jQuery脚本之后和表单之后。

答案 5 :(得分:0)

你应该将它包装在DOMready处理程序中,这是使用jQuery执行此操作的最简单方法:

<script>
$(function() {
   $('#searchPost').submit(function(event) {
       if ($(this).find('#searchBox').val() == '') {
          event.preventDefault();
       }
   }); 
});
</script>