與(我認爲)一個簡單的解決一個簡單的問題,但爲什麼不會以下(與線簡化版的事項)工作:變化值沒有工作
編輯: 我修改了代碼示例了一點,所以它可能使得它更清楚,爲什麼它有錯誤
我仍然懷疑有關的代碼,因爲它似乎醜陋,那裏面有很多無用的東西,但我沒有進入優化階段
HTML:
<div class="select-container">
<input type="hidden" name="enroll-persons-field" id="enroll-persons-field">
<select size="1" name="enroll-persons" id="enroll-persons" class="form-options" tabindex="7">
<option value=""></option>
<optgroup label="Ik boek voor">
<option value="1" selected>1 persoon</option>
<option value="2">2 personen</option>
<option value="3">3 personen</option>
<option value="4">4 personen</option>
<option value="5">5 personen</option>
<option value="more">meer dan 5 personen</option>
</optgroup>
<select>
<div>
[..]
<input type="text" name="enroll-address" id="enroll-address" class="default-input-style" placeholder="Je adres" tabindex="10" required>
現在我通過jQuery替換選擇列表來設置選項列表的樣式。我能想象它醜陋的做法,但到目前爲止,它的工作原理
$(".select-container").after("<div class='select-list-container'></div>");
$(".select-list-container").append("<ul id='select-option-list'>");
$(".form-options option").each(function(){
li = '<li id="'+$(this).val()+'">'+$(this).attr('text')+'</li>';
$("#select-option-list").append(li);
});
$(".select-list-container").append("</ul>");
$(".form-options").hide();
$(".select-container").text($(".form-options option:last").attr('text')).click(function(){
$(".select-list-container").toggle("fast");
});
$("#select-option-list li").live("click", function(){
$(".select-container").text($(this).text());
$(".select-list-container").toggle("fast");
$("#enroll-persons-field").val($(this).attr("id"));
});
希望本文將幫助
的alert()
給undefined
結果和$(this).attr('id')
是一個合法的值。我測試了:)
EDIT2: 通過將隱藏的輸入字段的select-container div
謝謝大家的幫助外解決它!
從我的pov無法工作的唯一原因是,如果隱藏元素動態添加和/或不在DOM作用域中,當分配值的腳本執行時......說隱藏字段,*註冊-persons-field *有一個默認值,你可以通過alert獲取該值嗎? – optimusprime619
隱藏的字段僅在html中提供。當我給它一個值,alert()仍然返回undefined – Maurice