2013-03-20 108 views
2

我有一個jQuery代碼,顯示/隱藏一些殘疾人領域,基於用戶的選擇選項:jQuery的顯示/隱藏字段未通過驗證的PHP

$('.fieldcontent').not('.info').hide(); 

$('#selector_cs').change(function() { 
    $('.fieldcontent').customFadeOut(100); 
    $('.' + $(this).val()).customFadeIn(900); 
    $('input').prop('disabled',false); 
    $('textarea').prop('disabled',false); 
    $('select').prop('disabled',false); 
}); 

}); 

大頭疼的是:如果一個或更多的字段正在消失,這些字段不會通過我的PHP驗證,也不會提交表單。

如果在所有瀏覽器上禁用JavaScript,表單完美無缺。

PHP驗證

if(!isset($_POST['products'])) { 
$products[2] = clean_var($_POST['products']); 
    } 
else { 
    $error = 1; 
    $products[3] = 'color:#FF0000;'; 
    } 

所有領域

是否有任何PHP/jQuery的解決方案(沒有AJAX請,因爲我不會再使整個表格,不知道關於Ajax的一切)?

預先感謝幫助

編輯:只要檢測到另一個錯誤:如果jQuery腳本淡入形式的另一部分,PHP不會驗證它了。爲什麼?從來沒有像php-jquery這樣的問題。

+0

你能離開所造成的問題字段啓用,只是隱藏它們呢? – 2013-03-20 01:22:28

+0

這不是可能的,因爲如果字段被jQuery啓用和隱藏,php驗證將不會通過。如果這些字段被禁用,則php驗證將無法看到它們。這就是爲什麼我禁用了字段,如果用戶不選擇它們。 – Someone33 2013-03-20 03:36:45

+0

讓他們'type ='hidden''而不是?當你想讓他們看到他們'type ='text''(或其他)時。儘管如此,但保持啓用 – 2013-03-20 16:36:23

回答

0

如果讓它們啓用,但將屬性type更改爲hidden,那麼當您提交它們時,PHP應該會看到這些字段。

更新
如何以下情形:顯示

  • 啓動隱藏的兩個字段(A + B)
  • '添加' 兩個type=hidden領域具有相同的名稱

    • 5場作爲A + B並將它們的當前值從A + B複製到`A +`B
    • PHP應該看到這兩個隱藏字段,而不是當前正在淡出的字段。
    • 如果在淡出,那麼當領域已經淡出刪除`A +`B的各場,並設置兩個褪去字段屬性hidden
    • 逆這再次顯示他們域的用戶沒有提交。

    請注意,這不是由PHP而是如何/當瀏覽器解釋表單字段是一個有效的表單字段被髮送提交表單時

  • +0

    如果我將它們啓用,但這些字段不會被jQuery腳本顯示,那麼PHP驗證將不會通過。這不是看到田野的問題。問題是驗證不會通過。如果字段淡入,php不會識別fadeIn字段,因爲對於PHP,新的fadedIn字段不存在。 – Someone33 2013-03-20 17:34:26

    +0

    @ Someone33更新了我的回答 – 2013-03-20 18:57:15

    +0

    曾嘗試過,但無效。但是,也許我不明白你的意思[這裏](http://zengrafic.com/test/test.html),你可以看到我的代碼在行動並下載文件。 1000感謝您的幫助,非常感謝。 – Someone33 2013-03-20 20:38:37