我有一组文本字段,当我点击时,文本消失并在模糊时返回(经典表单行为),以及一个按钮,当您单击时,您有一个jQuery模式窗口。但是,我希望允许用户使用jQuery添加更多文本字段(和按钮)。问题是,我的用户添加的字段与静态字段的行为方式相同。例如,当我点击按钮(用户添加的按钮)时,模态不会出现。 这是我的代码,可以让您更好地了解:
<form method="post" action="payment.php">
<div id="formulaire">
<div class="formelements">
<input type="text" name="from" value="Ex: English(UK)" style="width:100px;margin-right:0px;"
class="langfield">
<div class="droparrow" id="arrow"></div>
<input type="text" name="from" value="Ex: French(FR)" style="width:100px;margin-right:0px;"
class="langfield">
<div class="droparrow"></div>
<input type="text" name="nopages" id="nopages" value="Ex:4">
<div class="uploadbtn"></div>
</div>
</div>
</form>
这是我的javascript代码,用于更改字段的行为:
$('.formelements input').each(function () {
var default_value = this.value;
$(this).focus(function () {
if (this.value == default_value) {
this.value = '';
$(this).css("font-weight", "bold");
$(this).css("color", "#323232");
}
});
$(this).blur(function () {
if (this.value == '') {
this.value = default_value;
$(this).css("font-weight", "normal");
$(this).css("color", "#9e9e9e");
}
});
});
/* Modals script start UPDATED AS REQUESTED */
$('#formelements').on("click", ".uploadbtn", function () {
$("#modaldialog").dialog({
height: 332,
width: 625,
modal: true
});
});
非常感谢您的帮助!!
答案 0 :(得分:1)
要修复“无模态对话框”问题,请替换
$(".uploadbtn").click(function () {
$("#modaldialog").dialog({
height: 332,
width: 625,
modal: true
});
});
与
$('.formelements').on("click", ".uploadbtn", function () {
$("#modaldialog").dialog({
height: 332,
width: 625,
modal: true
});
});
这使用.on()函数,该函数适用于新创建的DOM元素。您可以将#formelements
替换为加载时出现的任何父元素 - 表单可以在此处使用
on()
方法至少需要jQuery 1.7才能运行...如果您有以前的版本,则可以使用delegate():
$('.formelements').delegate(".uploadbtn", "click", function () {
$("#modaldialog").dialog({
height: 332,
width: 625,
modal: true
});
});