【发布时间】:2011-10-26 14:57:16
【问题描述】:
我在一个组中有两个复选框和一个文本输入。如果一个(或两个)复选框被选中,我需要输入文本,如果文本输入有文本,我至少需要一个复选框。我遇到的另一个问题是它使用自定义模板引擎(PHP 后端)并且配置和获取正确的属性很痛苦,另一个问题是它全部由 name 属性引用,这就是我使用 HTML5 的原因我认为它有效的复选框选项的数据组。
任何帮助使其工作,组合功能(如果这使它更容易/更简单)。
顺便说一句,它正在运行 1.3.2 jQuery
示例:(不工作)
有什么建议吗?
JS:
function checkboxSelectedRequiredAdditionalFields(elem) {
var passedElement = $('input:checkbox[name=' + elem + ']');
passedElement.click(function() {
$('input[name=number]').attr('required', true).append('<span class="required">*</span>');
alert('text is required now?');
});
}
function numberEnteredRequiredAdditionalFields(elem) {
var passedElement = $('input[name=' + elem + ']');
if (passedElement.val().length > 0) {
var boxes = $('input[data-group=cbOptions]').click(function() {
boxes.not(this).attr('required', false);
alert('checkbox is selected so other checkbox is not required');
});
$('input[data-group=cbOptions]').each(function() {
$(this).attr('required', true).next().append('<span class="required">*</span>');
alert('checkbox is required now?');
});
}
}
HTML
<form>
<label>
<input type="checkbox" name="checkbox1" value="t" onclick="checkboxSelectedRequiredAdditionalFields('checkbox1');" data-group="cbOptions">
Checkbox Option 1
</label>
<label>
<input type="checkbox" name="checkbox2" value="t" onclick="checkboxSelectedRequiredAdditionalFields('checkbox2');" data-group="cbOptions">
Checkbox Option 2
</label>
Number <b>
<input type="text" name="number" value="" size="" maxlength="9" onclick="numberEnteredRequiredAdditionalFields('number');">
</b>
</form>
【问题讨论】:
-
部分问题在于您将单击处理程序分配给相同元素单击事件中的元素。如果你查看 firebug,你会看到错误。
标签: javascript jquery input checkbox