我有一个来自,如果我问你有多少参考。首先你从下拉菜单中选择性别,然后相关的文本框来可见..
$("#select").change(function(){
var type = $(this).find("option:selected").val();
$("input").hide().filter("." + type).show();
$(":button").show();
});
那么,你可能有一个第二参考添加后,只需按Add按钮来添加另一个参考..
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
不太确定问题所在。 '$( “#选择”)。change(function(){'将事件处理程序绑定到ID为'select'的元素,该元素存在*在那个时候*。它不影响后面添加的选择元素(无论如何,ID必须是唯一的) – 2012-02-27 12:48:38
谢谢Felix,但是如何选择新添加的选择? – teutara 2012-02-27 12:50:18
您可以使用事件委托,如下面的@will所示,或者只是将事件处理程序绑定到新创建的元素。 – 2012-02-27 12:51:30