2015-07-21 49 views
0

我有這樣的範式:替換/隱藏輸入按鈕如果表單驗證(使用jquery.validate.js)

<form class="vform" action='http://example.com/someaction.php' method='post' id='myid' > 
    <input type="email" name="email" id="email" class="required email " placeholder="Enter Your Email" > 
    <input id="#before" type='submit' value="Submit"> 
</form> 

我使用jquery.validate.js插件來驗證形式,這是工作正常。 (Link

需要什麼:
之前,用戶在表單驗證成功重定向,還有這個「暫停」(而其重定向)......在此期間,用戶反覆點擊提交按鈕。

如何隱藏/替換(可能帶有加載gif或其他東西)提交按鈕如果窗體被驗證。

含義,禁用或用別的東西替換輸入按鈕如果表單被驗證。

驗證代碼:

<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery.validation/1.14.0/jquery.validate.js"></script> 
<script>  
    $(document).ready(function() { 
     $(".vform").validate(); 
    }); 
</script> 

我嘗試驗證函數這樣之後加入一些替換/禁用代碼:

$(this).children('input[type=submit]').attr('disabled', 'disabled'); 

$('#before').replaceWith($('#after')); 

但是困惑到如何去實際去做。

任何人都可以提供一些見解?

編輯:輸入按鈕不應該被替換/禁用如果表單驗證是假的

回答

0

可以的jQuery submitHandler驗證。

<script>  
$(document).ready(function() { 
$(".vform").validate({ 
    submitHandler: function(form) { // <- pass 'form' argument in 
      $("#before").attr("disabled", true); 
      form.submit(); // <- use 'form' argument here. 
     } 
}); 
}); 
</script> 
+0

嗨Nishant,感謝您的快速響應。我正在嘗試你的代碼,但點擊輸入按鈕(成功)後,它會「凍結」一段時間(處於按下狀態),然後提交代碼。 (另外,請注意:整個小提琴頁面凍結!:S) 請檢查我創建的示例小提琴:http://jsfiddle.net/amodoke/2hgnZ/614/ – Amod

+0

@Amod我編輯了我的答案。現在它應該可以正常工作。更新小提琴可以訪問http://jsfiddle.net/2hgnZ/615/ –

+0

@Amod如果這個答案解決了你的問題,請接受答案。 –