2011-10-31 2 views
1

datePicker와 함께 jEditable 플러그인을 사용하고 있지만 데이터베이스에 제출하기 전에 날짜 검증이 필요합니다. 그래서 내가 이런 식으로 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); 
} 

나는에 경고를 얻을 검증 방법을 의미 문, 작동하지만 유효하지 않은 값이 여전히 데이터베이스에 제출받을 경우. 왜 반환 거짓 dint가 제출 작업을 멈추는 지 알지 못합니다. 오랫동안이 문제를 해결하려고했지만 아직 솔루션에 가장 근접한 시간입니다. 난 그냥 힘 ....

정말 감사합니다 ... 여기에 도움이 필요합니까 ... 내가 if 문에 제출을 중지 할 수 있습니다 방법을 알고

(UPDATE : 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' 

    }); 
+0

는 HTML – Hogan

+0

안녕을 보여주십시오, 나는, html로에 추가 모두 내를 날짜 필드가 테이블에 있습니다 – shennyL

+0

여전히 제출 기능이 – Hogan

답변

0

는에 의해 작동 받기 제출을 중지하려고하지 않고 유효성 검증에 실패하면 입력 값을 기본값으로 바꿉니다. 감사합니다

0

늦은 대답하지만, 단지 return false;onsubmit 매개 변수 기능에서, 다른 사람에게 어쩌면 아직도 유용한 예를 들어, 그 제출을 피하기 위해 :

$('.editable').editable('/someurl', { 

    ... // all your jeditable settings 

    onsubmit: function (settings, original) { 

     if (<conditions to not submit>) 
      return false; 

    } 
}); 
관련 문제