我使用jEditable插件與datepicker,但我需要在提交到數據庫之前對日期進行驗證。所以我編輯jEditable-datepicker.js到這樣的事情:jQuery + jEditable - 防止提交自定義輸入
submit: function (settings, original) {
var form = this;
var tid = $(original).attr('id');
var input = $(original).find('input');
var newDate = input.val();
alert('id' + tid);
alert('newdate' + newDate);
$.ajax({
async: false,
url: '/Stock/CompareDate',
type: 'GET',
data: { id: tid, inputDate: newDate },
success: function (result) {
alert(result);
if (result < 0) {
alert("Expiry dare cannot be earlier than storage date");
return false;
}
else {
alert('else');
return true;
}
}
});
},
/* attach jquery.ui.datepicker to the input element */
plugin: function (settings, original) {
var form = this,
input = form.find("input");
// Don't cancel inline editing onblur to allow clicking datepicker
settings.onblur = 'nothing';
datepicker = {
dateFormat: 'D, dd M yy'
};
input.datepicker(datepicker);
}
我得到的警報if語句,這意味着該驗證方法的工作原理,但無效值仍然可以提交到數據庫。我不知道爲什麼回報虛假力量停止提交行動..我試圖解決這個問題很長一段時間,但這是我接近解決方案的時間。我只是憑着知道我可以在if語句停止提交...
難道真的需要幫助這裏...謝謝....
(更新:加入HTML)
我的日期場是在一個表:
<td id="[email protected](item.FoodID)" class="storagedatepicker">
@String.Format("{0:ddd, d MMM yyyy}", item.StorageDate)
</td>
<td id="[email protected](item.FoodID)" class="expirydatepicker">
@String.Format("{0:ddd, d MMM yyyy}", item.ExpiryDate)
到jeditable的調用是這樣的:
$('.expirydatepicker').editable('@(Url.Action("Edit", "Stock"))',
{
type: 'datepicker',
indicator: 'saving...',
event: 'dblclick',
tooltip: 'Double click to edit...',
submit: '<img src="../../Content/Add_in_Images/ok.png" alt="ok"/>',
cancel: '<img src="../../Content/Add_in_Images/cancel.png" alt="cancel"/>',
style: 'inherit'
});
請出示HTML – Hogan
嗨,我加入了HTML,無論是我的日期字段在表 – shennyL
仍然不清楚在哪裏提交函數被調用 – Hogan