2011-05-18 78 views
3

我有一些字段,我要求取決於哪個按鈕被點擊。我所看到的行爲並不是我所期望的,也不是我想要的。當我點擊其中一個按鈕時,它會根據需要設置必填字段,但如果我點擊另一個按鈕,則由於某種原因它不會重置它們。重置必填字段 - jQuery

代碼如下。感謝您的幫助,您可以提供:

function makeAllRequired() { 
     $("#SomeForm").validate({ 
      rules: { 
       StartDate: { 
        required: true, 
        date: true 
       }, 
       Name: { 
        required: true 
       } 

      }, 
      errorElement: "div" 
     }); 
    } 

    function makeSomeRequired() { 
     $("#SomeForm").validate({ 
      rules: { 
       StartDate: { 
        required: true, 
        date: true 
       } 
      }, 
      errorElement: "div" 
     }); 
    } 

    $(document).ready(function() { 
     $("#SomeButtonOne").click(function() { 
      makeAllRequired(); 
      $("#SomeForm").attr("action", "/here/there"); 
      $("#SomeForm").submit(); 
     }); 
$("#SomeButtonTwo").click(function() { 
      makeSomeRequired(); 
      $("#SomeForm").attr("action", "/here/elsewhere"); 
      $("#SomeForm").submit(); 
     }); 
}); 
+0

我們可以請看看html以及 – mcgrailm 2011-05-19 14:49:23

回答

1

嘗試正在重置的形式制定新的必要的項目前:http://docs.jquery.com/Plugins/Validation/Validator/resetForm

+0

似乎無法得到的工作。我已經嘗試在我的兩個函數中進行validate()。resetForm()方法來進行驗證,並且它不會改變行爲。我試過在驗證邏輯之前和之後放置它,都沒有工作。當我把它放在之前,它只是允許表單提交,當我把它放在後面時,它不會重置下一個按鈕單擊的驗證。 – 2011-05-18 16:35:12

+0

可以在jsfiddle上拋出一個半工作的例子嗎? – 2011-05-18 16:38:43

+0

對不起,這是個問題嗎?如果是這樣,我不理解它:/ – 2011-05-18 16:40:22

0

我不是100%肯定,但嘗試先刪除規則,應用新的

function makeAllRequired() { 
    $("#SomeForm").rules("remove"); 
    $("#SomeForm").validate({ 
     rules: { 
      StartDate: { 
       required: true, 
       date: true 
      }, 
      Name: { 
       required: true 
      } 

     }, 
     errorElement: "div" 
    }); 
} 

function makeSomeRequired() { 
    $("#SomeForm").rules("remove"); 
    $("#SomeForm").validate({ 
     rules: { 
      StartDate: { 
       required: true, 
       date: true 
      } 
     }, 
     errorElement: "div" 
    }); 
}