我有以下表单代码,如果选择了现有类别,则显示现有类别的下拉菜单;如果选择了添加新类别,则显示文本字段。
这一切都很完美,但我正在尝试验证字段,我无法禁用未选择的重复字段,因此我无法提交表单。
我在验证时遇到空字段失败,并出现以下错误:名称='category'的无效表单控件无法调焦。
我想更改名称或禁用它或设置隐藏字段的值以使其有效。
<tr>
<td class="right bold">New or Existing Category: </td>
<td class="capitalise">
<select name="categoryType" id="categoryType" required>
<option value="" selected='selected'>--Please Select--</option>
<option value="existing">Existing Category - Select from Category list below</option>
<option value="addNew">Add new Category - Add new Category in Text box below</option>
</select></td>
</tr>
<tr id="existing">
<td class="right bold">Category: </td>
<td class="capitalise">
<select id="categoryExist" name="category" required>
<option value='' selected='selected'>--Please Select--</option></select>
<option value='1'>1</option>
<option value='2'>2</option>
</select>
</td>
</tr>
<tr id="addNew">
<td class="right bold">Add Category: </td>
<td class="capitalise">
<input id="categoryNone" type="text" name="category" class="capitalise" required />
</td>
</tr>
$(document).ready(function() {
$("#categoryType").change(function() {
if (this.value == 'existing') {
$('#existing').show();
$('#categoryNone').attr({name: "difcat", value: '000'});
} else {
$('#existing').hide();
}
if (this.value == 'addNew') {
$('#addNew').show();
$('#categoryExist').attr({name: "othercat", value: '000'});
} else {
$('#addNew').hide();
}
});
});
我也尝试过:
$(["input:hidden, textarea:hidden, select:hidden"]).attr("disabled", false);
但它似乎不起作用。
jsfiddle http://jsfiddle.net/LUeT9/
确定已解决,我更改了以下内容,禁用了非活动验证:
$(document).ready(function() {
$("#categoryType").change(function() {
if (this.value == 'existing') {
$('#existing').show();
$('#categoryNone').prop("disabled", true);
} else {
$('#existing').hide();
}
if (this.value == 'addNew') {
$('#addNew').show();
$('#categoryExist').prop("disabled", true);
} else {
$('#addNew').hide();
}
});
});