我有以下表格:
<div class="form-group">
<label class="control-label">Product</label>
<div class="controls">
<select class='dropdown' style="width:50%" id="dropdown1" name="dropdown1" required="required">
<option></option>
<?php echo $q1; ?>
</select>
<span class="help-block">This is a description</span>
</div>
</div>
<div class="form-group">
<label class="control-label">Issue</label>
<div class="controls">
<select class='dropdown' style="width:50%" id="dropdown2" name="dropdown2" required="required">
</select>
<span class="help-block">This is a description</span>
</div>
</div>
<div class="form-group">
<label class="control-label">Issue</label>
<div class="controls">
<select class='dropdown' style="width:50%" id="dropdown3" name="dropdown3" required="required">
</select>
<span class="help-block">This is a description</span>
</div>
</div>
和以下javascript:
<script>
//Support
$(document).ready(function() {
var obj = $.parseJSON('<?php echo $all; ?>');
$("#add_ticket_form").validate({
errorClass: "help-inline",
errorElement: "span",
highlight: function(element, errorClass, validClass) {
$(element).parents('.form-group').addClass('has-error');
},
unhighlight: function(element, errorClass, validClass) {
$(element).parents('.form-group').removeClass('has-error');
$(element).parents('.form-group').addClass('has-success');
}
});
$("select").select2({
});
$("#dropdown1").change(function() {
$('#dropdown2').find('option').remove().end();
if (obj[$(this).val()] !== undefined)
{
$('#dropdown2').append(obj[$(this).val()]);
$('#dropdown2').rules('add', 'required');
}
else
{
//$('#dropdown2').attr('disabled', true);
//$('#dropdown2').attr('required', false);
}
});
$("#dropdown2").change(function() {
$('#dropdown3').find('option').remove().end();
if (obj[$(this).val()] !== undefined)
{
$('#dropdown3').attr('disabled', false);
$('#dropdown3').rules('add', 'required');
$('#dropdown3').append(obj[$(this).val()]);
}
else
{
$('#dropdown3').attr('disabled', true);
$('#dropdown3').attr('required', true);
}
});
});
当我尝试验证我的表单时,不触摸下拉菜单,验证器会突出显示每个表单,说它们是必需的。但是,当我触摸第一个下拉列表并更改其值并单击按钮时,它说第一个和第二个下拉列表是正确的,只有第三个是不正确的。看起来问题是由 .append 函数引起的,因为当我将其注释掉时,它就像一个魅力。