【发布时间】:2012-02-27 12:41:16
【问题描述】:
我确实有一个来自,比如我问你有多少推荐信。首先你从下拉菜单中选择性别,然后相关的文本框就会出现..
$("#select").change(function(){
var type = $(this).find("option:selected").val();
$("input").hide().filter("." + type).show();
$(":button").show();
});
然后,您可能要添加第二个引用,您只需按添加按钮添加另一个引用..
var initial=0;
function addReference(){
var newDiv= addNewDiv();
var htcontents="<select id=\'new\'>" +
"<option value=\'\'>--choose--</option>
<option value=\'article\'>article</option>
<option value=\'thesis\'>thesis</option>"
+ "<input class=\'article\' type=\'textbox\' name=\'ref_author_name[]\'/>"
+ "<input class=\'article\' type=\'textbox\' name=\'ref_article_title[]\'/>"
+ "<input class=\'thesis\' type=\'textbox\' name=\'ref_author_name[]\'/>"
+ "<input class=\'thesis\' type=\'textbox\' name=\'ref_thesis_title[]\'/>";
document.getElementById(newDiv).innerHTML=htcontents;
}
function addNewDiv(){
initial=initial+1;
var ni = document.getElementById('area');
var newdiv=document.createElement('div');
var divIdName = 'Div #' +initial;
newdiv.setAttribute('id', divIdName);
ni.appendChild(newdiv);
return divIdName;
} // i guess there is a more simple solution with jQuery, but i do not know..
我的问题是,当您添加第二个参考并选择一个选项时,可见文本框不会改变。我猜这是因为我有 jquery 代码,
var type = $(this).find("option:selected").val();
$("input").hide().filter("." + type).show();
我想我没有按我应该的方式选择,有什么想法吗?
非常感谢任何帮助..
这里是小提琴:http://goo.gl/Xdjtc
【问题讨论】:
-
不太确定是什么问题。
$("#select").change(function(){会将事件处理程序绑定到 ID 为select的元素,该元素当时存在。它不会影响以后添加的任何选择元素(无论如何,ID 都必须是唯一的)。 -
感谢 Felix,但是如何选择新添加的选择?
-
要么使用事件委托,如下@will 所示,要么将事件处理程序绑定到新创建的元素。
-
另请注意,
textbox不是<input>的type属性的有效值。