【发布时间】:2013-07-29 15:02:47
【问题描述】:
所以我有一个选择下拉菜单,它创建了 2 个新的输入字段。
我的 jsFiddle: http://jsfiddle.net/leongaban/CbcmS/
我遇到的问题是,在您创建一个新的输入字段后,您可以一遍又一遍地创建相同的输入字段。只需在the dropdown 中一遍又一遍地选择每个选项。
这不是故意的,我希望发生的情况是,一旦创建了输入,就不能再创建了。
我目前唯一的想法是创建另一个变量,它将手机或工作电话存储到一个数组中,或者只是一个真假布尔值,并在 if else 语句中检查它。
但是,您是否知道一种更简单或更直接的方法来完成此操作?
jQuery:
$(document).ready(function() {
var cellphone = "<th><label>Cell Phone:</label></th><td><input type='tel' name='cp' value=' ' maxlength='11' /></td>";
var workphone = "<th><label>Work Phone:</label></th><td><input type='tel' name='wp' value=' ' maxlength='11' /></td>";
$('#id_contact_info').change(function(){
if ($(this).val() == 2) {
console.log('cell phone');
$('.choice_cell_phone').append(cellphone);
} else if ($(this).val() == 3) {
console.log('work phone');
$('.choice_work_phone').append(workphone);
}
});
});
HTML
<div class="form-fields">
<table>
<tr>
<th><label for="id_contact_info">Add More Contact Info: </label></th>
<td>
<select name="contact_info" id="id_contact_info">
<option value="1">select contact type</option>
<option value="2">Cell Phone</option>
<option value="3">Work Phone</option>
</select>
</td>
</tr>
<tr class="choice_cell_phone">
</tr>
<tr class="choice_work_phone">
</tr>
</table>
【问题讨论】:
-
创建后,只需在选择中禁用该选项!
-
哦,就像某种从选择功能中删除?
-
我认为一个很好的方法是使用 .html() 方法而不是 append,所以: $('.choice_cell_phone').html(cellphone);和 $('.choice_work_phone').html(workphone);这样您就不需要使用额外的变量作为标志来查看它们是否已添加。
-
在您的
change事件中,包含以下行:$(this).find("option:selected").prop("disabled", true)。选择此选项后,您将无法再选择它,它将被禁用。 @Leon -- 像这样:jsfiddle.net/CbcmS/24 -
非常感谢!在项目中使用它
标签: jquery html drop-down-menu append