我有HTML頁面包含兩個元素:輸入文本和保存按鈕。我需要,即JQuery覆蓋onclick函數。當用戶單擊按鈕保存時,JQuery必須調用函數Validate(),如果字段驗證,則調用默認函數。所以我需要,如果文本框長度不等於14顯示消息 - >「該字段無效!」。如果是,請調用默認功能,我需要看到警報 - >「123」。但現在不行了。那麼,這是如何解決的?不重寫函數JQuery
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
</head>
<body>
<form action="demo_form.asp">
Phone: <input type="text" name="Phone" title="title1" value="(999) 999-9999">
<input class="ms-ButtonHeightWidth" type="button" target="_self" accesskey="O"
onclick="alert('123')" value="Save" >
</form>
<script type="text/javascript">
$(document).ready(function(){
var temp = $('input[value="Save"]').click;
$('input[value="Save"]').click(Validate);
function Validate() {
if ($('input[title="title1"]').val().length != 14) {
alert("The field not valid!");
}else {
temp();
}
}
});
</script>
</body>
</html>
對不起。我沒有說html。此頁面在ASP上生成。事件「onclick =」alert('123')「」給我服務器,我不能在窗體上使用Id,按鈕,因爲它有任何不同的時間。我只能使用值和標題,因爲服務器不會更改它。我無法刪除onclick。所以這就是爲什麼我需要覆蓋onclick。
我想我們都誤解了OP的問題。在這種情況下,調用'preventDefault()'並不會阻止已經綁定的'onclick'屬性在**自定義警報> http://jsfiddle.net/Cea7z/1/之前觸發**。請注意,如何首先更改字段值會觸發「123」的警報,然後是所需的輸出?我相信OP會詢問如何防止初始函數觸發,如果if()語句是真的。 – BenM
@BenM我認爲你是對的。我在那個基礎上重新回答了我的答案。 – Barmar
謝謝!這就是我需要的! – user2956406