我正在使用jeditable和datepicker,我希望在用户选择日期之前进行一些验证,然后再将其提交到数据库。我浏览了jeditable-datepicker.js并意识到一旦onselect事件发生就会触发提交。如何在事件中包含条件,以便将无效日期提交到数据库?
这是我使用onsubmit事件进行的试用:
$('.expirydatepicker').editable('@(Url.Action("Edit", "Stock"))',
{
type: 'datepicker',
indicator: 'saving...',
event: 'dblclick',
tooltip: 'Double click to edit...',
style: 'inherit',
width: ($('.datepicker').width() - 10) + "px",
onsubmit: function (settings, td) {
var tid = $(td).attr('id');
//alert(tid);
$.ajax({
async: false,
url: '/Stock/CompareDate',
type: 'GET',
data: { id: tid },
success: function (result) {
if (result < 0) {
alert("Expiry dare cannot be earlier than storage date");
return onSelect(false);
}
else {
return true;
}
}
});
}
});
jEditable-datepicker函数:
/* 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',
onSelect: function() {
// clicking specific day in the calendar should
// submit the form and close the input field
form.submit();
},
我想知道无论如何,如果输入无效,我可以“停止”onselect事件吗? 希望能在这里得到一些帮助......谢谢......
答案 0 :(得分:0)
尝试这样的事情:
plugin : function(settings, original) {
..
$(this).find('input').datepicker().bind('click', function(e) {
//e.preventDefault() // also test this
return false;
})
答案 1 :(得分:0)
您可以简单地检查所选日期是否有效,并且只有提交和表格才能生效?
onSelect: function(dateText, inst) {
if (/* dateText is valid */) {
form.submit();
}
}
答案 2 :(得分:0)
我通过不停止提交来完成它,但如果验证失败,则将输入值更改回默认值。这是我完成任务的唯一方法。谢谢!