2016-06-17 82 views
0

我正在嘗試用JQuery來完成某些事情,而且我似乎無法使其工作。很多事情與我不是JQuery的人有關,所以我相信這是錯誤的。使用jquery添加一個屬性來輸入隱藏元素的子元素?

我有一個非常大的表單,有一些條件,某些表單部分不顯示,取決於選擇了哪個單選按鈕值。所以我所做的是,當選擇某個值時,它會向div元素添加或移除一個「隱藏我」類,因此內部的所有表單字段都不顯示。問題是,如果我有一些要求,表單不會提交,並且不能填寫不可見的字段。所以我想要做的是當表單被提交時,它應該首先獲取任何div中隱藏我的類的所有子輸入元素並設置禁用的屬性。

我該如何做到這一點?

下面是一些示例代碼:http://codepen.io/amarit84/pen/KMgKRd

$('#test_form_id').submit(function() { 
    $('.hide-me').children(":input").prop("disabled", true); 
}); 
+0

[It does already already](https://jsfiddle.net/bu7tjucv/),不是嗎? – nicael

+0

在jQuery中沒有太多的經驗,但因爲你有多個輸入元素,對嗎?我認爲你缺少'.each()' – KanisXXX

+1

@Vijay代碼OP提供的代碼已經不起作用了。 – nicael

回答

1

只是把它放在你的submit()之外,你的例子不工作,所以我在你的codepen上添加了jquery。

$('.hide-me').children(":input").prop("disabled", true); 
$('#test_form_id').submit(function() { 

}); 

它總是會觸發填補隱藏,因爲jQuery代碼的形式將其禁用隱藏輸入裏面你提交(),HTML5的驗證是由觸發提交這就是爲什麼你的代碼以禁用隱藏的投入不會執行阻止你。 codepen sample updated

+0

謝謝。我想我有點困惑的是表單知道如何運行第一行jquery?這是我首先將它提交到提交函數的唯一原因。 – lpangm03

+0

它不知道。如果在函數之外,這個第一行將被執行onload。 –

+0

我真的無法解釋它,現在我不怎麼解釋codepen如何設法讀取第一行,但通常我會添加$ document.ready以確保它在頁面準備就緒時運行腳本。如果您認爲我對您的回答問題是可以接受的,請接受爲答覆,謝謝。 [jquery文檔準備](https://learn.jquery.com/using-jquery-core/document-ready/) – Efx

0

試試這個:

$('.hide-me').children("input").attr("disabled", true); 

,因爲你這樣做onsubmit,我不明白你想做到這一點。無論如何頁面重新加載...

Here's a Fiddle與«修改»代碼。

+0

我剛剛更新了小提琴,以使您的啓用鏈接到工作。 –

相關問題