2011-03-03 71 views
1

我有這樣的代碼:快速jQuery的問題

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

這我提交搜索表單。我試圖阻止它在空的時候提交。我知道這很難做到內聯,但是當我試圖從鏈接中取出JS代碼時,即使內聯代碼調用鏈接之外的函數,它也停止工作。

我被告知要使用此代碼:

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

但我不知道在哪裏把它,使其工作。當然,內聯,該代碼不會做我想要的。我把它完全放在我的文檔的頭部,它也沒有太大改變。任何幫助?

回答

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

我想你想陷阱$( '#searchPost')點擊()事件,而不是提交()。事件。嘗試捕獲$ .click(),然後檢查val(),然後有條件地執行$ .submit()。

確保$(「#searchPost」)存在過......

3

您需要將包裝在$(document).ready(function(){});$(function(){});

+0

那是什麼我忘了,不好意思。 – AKor 2011-03-03 18:03:51

+0

沒什麼好擔心的,只是很高興我可以幫你解決問題。 – 2011-03-03 18:04:30

0

短手沒有看到任何你的代碼,我會說一個安全的賭注是將該代碼放在jQuery腳本之後和表單之後。

0

你應該把它包在domready中的處理程序,這是用jQuery做的最簡單的方法:

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