鑑於以下代碼(是的,我知道它可能與yii無關,但我添加了標籤,因此我使用實際生成的html更新了該問題):yii中的jquery:檢測單選按鈕丟失複選標記(選中狀態)
<script>
$(function(){
$('#widgetId-form input[name="valueType"]').change(function(){
if ($(this).is(":checked"))
{
console.log("habilitando "+$(this).data("class"));
$("."+$(this).data("class")).prop("disabled", false);
}
else
{
console.log("deshabilitando "+$(this).data("class"));
$("."+$(this).data("class")).prop("disabled", true);
}
}).change();
});
</script>
<div id="widgetId-dialog">
<form id="widgetId-form" action="/support/test" method="post">
<div>
<input id="valueType-single" value="single" data-class="singleValueField" checked="checked" type="radio" name="valueType" />
<label for="single">Valor simple</label>
<input size="6" class="singleValueField" type="text" value="" name="singleValue" id="singleValue" />
</div>
<div>
<input id="valueType-range" value="range" data-class="rangeValueField" type="radio" name="valueType" />
<label for="range">Rango (inicio:fin:intervalo)</label>
<input size="6" class="rangeValueField" type="text" value="" name="rangeValue_start" id="rangeValue_start" />:<input size="6" class="rangeValueField" type="text" value="" name="rangeValue_end" id="rangeValue_end" />:<input size="6" class="rangeValueField" type="text" value="" name="rangeValue_interval" id="rangeValue_interval" />
</div>
</form>
</div>
當收音機未選中時,它不會觸發change()。這意味着:僅在初始化(.ready())上禁用控件。 change()不會被丟失複選標記的控件單獨觸發。
問題:如何檢測單選按鈕何時丟失複選標記?
你試過在「widgetId對話」附加一個? https://api.jquery.com/on/'$(「#widgetId-dialog」)。on('change','input [name =「valueType」]',function()......' –
可能是一個愚蠢的問題,但是代碼是否寫成了?因爲它可以在繪製HTML之前執行javascript,請嘗試將其包裝在'$(document).ready()' – stakolee
@stakolee'$(function (){'=='$(document).ready()''同樣來自jquery doc的 –