2012-07-11 32 views
0

我正在建立一個基於WordPress的網站,我把那裏使用jQuery的形式。 不過,我剛開始瞭解jquery,所以在處理它時我感覺不太好。我有兩個問題。客戶端需要表單驗證嗎?或者如果在服務器端完成相同的操作就足夠了

第一條: 關於這種形式,是否有必要在客戶端和服務器端驗證表單?或者只在服務器端(PHP)就夠了?

第二個問題: 表單有一些字段,如果點擊一個按鈕可以重複。對於這一點,我用下面的代碼:

jQuery代碼:

(function($){ 

$countForms = 1; 

     $.fn.addForms = function(idform){ 

        var myform = "<table>"+ 
        " <tr>"+ 
        "  <td>Field A ("+$countForms+"):</td>"+ 
        "  <td><input type='text' name='fielda["+$countForms+"]'></td>"+ 
        "  <td>Field B ("+$countForms+"):</td>"+ 
        "  <td><textarea name='fieldb["+$countForms+"]'></textarea></td>"+ 
        "  <td><button>remove</button></td>"+ 
        " </tr>"+ 
        "</table>"; 



        if(idform=='mybutton'){ 
         alert(idform); 
         myform = $("<div>"+myform+"</div>"); 
         $("button", $(myform)).click(function(){ $(this).parent().parent().remove(); }); 
         $(this).append(myform); 
         $countForms++; 
        } 

     }; 
})(jQuery);   



$(function(){ 
    $("#mybutton").bind("click", function(e){ 
    e.preventDefault(); 
    var idform=this.id; 

     if($countForms<3){ 
      $("#container").addForms(idform); 
     }  
    }); 
}); 

HTML:

<div id="container"><div> 
<form method="post" name="b" > 
<table> 
    <tr> 
     <td>Field A</td> 
     <td><input type='text' name='dadoA'></td> 
     <td>Field B</td> 
     <td><textarea name="dadoB"></textarea></td> 
     <td><button>remove</button></td> 
    </tr> 
</table> 
</div> 
</div> 
<button id="mybutton">add form</button> 

<div align="center"> 
<p><input type="submit" value="Registar" name="registar"></p> 
</div> 

我知道如何使用PHP來驗證這些字段。我不知道的是當我複製它們時如何驗證。
我的意思是,我有這種形式與2個字段,我複製它們,並假設用戶用錯誤/未接受的值填充這個新的(第三個)字段。
點擊「提交」後,如何使用PHP驗證輸入,刷新頁面,回顯2個原始字段和重複的字段(哪個用戶重複),所有的輸入都由用戶填寫並輸入錯誤消息?

回答

0

這可能不是你在尋找什麼,但你可以通過使用此簡化驗證:Live Validation

這是一個JavaScript驗證腳本。我喜歡它,它的lite很快,而且使用起來非常簡單。有關如何使用它的完整文檔,並且它都是運行的客戶端。

+0

我會看一看,後來在這裏告訴一些則:P – user1511579 2012-07-11 19:16:28

+0

你驗證如何在此居住的驗證拒絕的數字?我不能這樣做:/ – user1511579 2012-07-14 15:06:38

+0

沒關係,解決:P – user1511579 2012-07-14 15:21:01

1

理想的情況下,從UX角度來看,你應該嘗試驗證客戶端,然後仔細檢查服務器端。提交表單只是爲了發現問題是錯誤的,這非常煩人。在提交之前顯示錯誤/問題總是一個優點。

+0

所以你建議jQuery加php是它嗎? – user1511579 2012-07-11 19:16:41

+0

我正要回答,但這一個只是我正要說的。驗證不一定是必需的。但是,我不認爲沒有服務器端驗證就無法處理表單數據。客戶端驗證只應用於改善用戶體驗。 – 2012-07-11 20:05:52

+0

是的,jquery會做。我已經使用過這個插件幾次了。 http://bassistance.de/jquery-plugins/jquery-plugin-validation/我確定還有其他人。聽起來像你有PHP方面的覆蓋,所以我不會解決這個問題。 – 2012-07-12 00:12:59

0

我覺得第一個問題是Chief Alchemist's Answer回答得很好。要回答第二個問題,帶有可變字段的表單應該作爲數組發佈。在處理和驗證表單數據時,您應該遍歷每個數組條目。

+0

好吧,那麼我想我會嘗試首先用php進行驗證,dificult部分將會維護數組,然後我會考慮客戶端,會看看現場驗證。 – user1511579 2012-07-11 20:35:37

+0

你能給我一個鏈接來展示如何處理$ _Post中的數組? 通常我會使用:$ name = $ _POST ['name']; 但與數組... – user1511579 2012-07-11 20:49:00

+0

http://stackoverflow.com/questions/2433727/submitting-a-multidimensional-array-via-post-with-php回答關於提交表單作爲數組和處理它的問題。 – 2012-07-12 13:14:41

相關問題