我有一個網格控件,允許用戶在網格中添加一個值。防止__doPostBack發射掉
它生成以下鏈接插入一個全新的項目。
<a onclick="if(!$find('radGridHolidays_ctl00').insertItem()) return false;" id="radGridHolidays_ctl00_ctl02_ctl02_PerformInsertButton" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("radGridHolidays$ctl00$ctl02$ctl02$PerformInsertButton", "", true, "", "", false, true))'>Insert</a>
我有一些自定義的jQuery代碼驗證提交之前的文本框。我試圖阻止提交__doPostBack的鏈接,但我的代碼無法正常工作。
// if need be, move this to its own .js file
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
// Document loaded, let's register some validation
$(function() {
$('#holidayValidationDisplay').hide();
$('a#radGridHolidays_ctl00_ctl02_ctl02_PerformInsertButton').click(function(e) {
e.stopImmediatePropagation();
e.preventDefault();
var hasErrors = false;
// alert('You clicked me!');
var holidayName = $('#radGridHolidays_ctl00_ctl02_ctl02_validatorHolidayName').val().trim();
var holidayDate = $('#radGridHolidays_ctl00_ctl02_ctl02_RDIPHolidayDate_dateInput_text').val().trim();
if (holidayName.length == 0) {
hasErrors = true;
$('#holidayList').append('<li>You must provide a holiday name</li>');
}
if (holidayDate.length == 0) {
hasErrors = true;
$('#holidayList').append('<li>You must provide a holiday date</li>');
}
if (hasErrors) {
$('#holidayValidationDisplay').show();
return false;
}
});
});
但是鏈路仍然發射了,當我不想,如果有錯誤發生的回發。我看到一些關於防止它在UpdatePanel中工作的內容,但我不確定那裏的解決方案適用於我的場景。
如果有人有任何想法,我都是「耳朵」。
我認爲在href:中的元素做回傳。你可以刪除它,它不應該回來? – Brett 2011-05-12 19:25:19
@Brett,我刪除了href,但沒有奏效。 – coson 2011-05-12 19:32:31