Javascript 在统一模式下更改时更新数组选择值
将uniform用于我正在处理的表单,并通过克隆以下内容动态添加字段:Javascript 在统一模式下更改时更新数组选择值,javascript,jquery,uniform,Javascript,Jquery,Uniform,将uniform用于我正在处理的表单,并通过克隆以下内容动态添加字段: <label for="USState">US State:</label> <select name="USState[]" class=""> <option value="" selected="selected">Select State</option> 我已经尝试添加一个change函数来更新所有字段,但是当第一个下拉列表发生变化时,克隆不会
<label for="USState">US State:</label>
<select name="USState[]" class="">
<option value="" selected="selected">Select State</option>
我已经尝试添加一个change函数来更新所有字段,但是当第一个下拉列表发生变化时,克隆不会发生变化,尽管值仍然可以很好地传递
编辑:
添加到JSFIDLE:因为您是在动态地向页面添加元素,所以很可能没有触发事件,因为没有附加任何处理程序。 尝试更改此选项:
$("select").change(function() {
$.uniform.update();
});
为此:
$(document).on("change", "select", function() {
$uniformed = $(".styleThese").find("input, textarea, select, button, a.uniformTest").not(".skipThese");
$uniformed.uniform({selectAutoWidth: false});
$.uniform.update();
});
编辑
根据注释,进行一些可能有助于您进一步的更改。由于您正在向页面动态添加元素,因此很可能没有触发事件,因为没有附加任何处理程序。 尝试更改此选项:
$("select").change(function() {
$.uniform.update();
});
为此:
$(document).on("change", "select", function() {
$uniformed = $(".styleThese").find("input, textarea, select, button, a.uniformTest").not(".skipThese");
$uniformed.uniform({selectAutoWidth: false});
$.uniform.update();
});
编辑
根据注释,进行一些可能有助于您进一步的更改。由于您正在向页面动态添加元素,因此很可能没有触发事件,因为没有附加任何处理程序。 尝试更改此选项:
$("select").change(function() {
$.uniform.update();
});
为此:
$(document).on("change", "select", function() {
$uniformed = $(".styleThese").find("input, textarea, select, button, a.uniformTest").not(".skipThese");
$uniformed.uniform({selectAutoWidth: false});
$.uniform.update();
});
编辑
根据注释,进行一些可能有助于您进一步的更改。由于您正在向页面动态添加元素,因此很可能没有触发事件,因为没有附加任何处理程序。 尝试更改此选项:
$("select").change(function() {
$.uniform.update();
});
为此:
$(document).on("change", "select", function() {
$uniformed = $(".styleThese").find("input, textarea, select, button, a.uniformTest").not(".skipThese");
$uniformed.uniform({selectAutoWidth: false});
$.uniform.update();
});
编辑
根据评论,进行一些可能有助于您进一步的更改。不幸的是,没有骰子。我应该在创建字段的部分添加一些内容吗<代码>$(“#添加”)。单击(函数(){$('#USStateTaxBox')。克隆(true)。在('#buttonholder')之前插入;返回false;})代码>@BN83我更新了我的答案。同样,我认为发生的情况是,当你调用
$(“select”)
和.find(“”
)时,它会立即执行操作。因此,在事件发生后添加的任何项目都不会有事件发生,也不会成为先前查询项目列表的一部分。我们刚刚尝试过,但仍然没有成功。因此,我尝试将$.uniform.update()
函数添加到按钮$(“#update”)。单击(function(){$.uniform.update();})
这也没有更新它…@BN83你用的是什么浏览器?Mac上的Chrome,但已经在Firefox和Safari上测试过了,同样的问题。它的样式,但只是不显示选定的项目。没有骰子不幸。我应该在创建字段的部分添加一些内容吗<代码>$(“#添加”)。单击(函数(){$('#USStateTaxBox')。克隆(true)。在('#buttonholder')之前插入;返回false;})代码>@BN83我更新了我的答案。同样,我认为发生的情况是,当你调用$(“select”)
和.find(“”
)时,它会立即执行操作。因此,在事件发生后添加的任何项目都不会有事件发生,也不会成为先前查询项目列表的一部分。我们刚刚尝试过,但仍然没有成功。因此,我尝试将$.uniform.update()
函数添加到按钮$(“#update”)。单击(function(){$.uniform.update();})
这也没有更新它…@BN83你用的是什么浏览器?Mac上的Chrome,但已经在Firefox和Safari上测试过了,同样的问题。它的样式,但只是不显示选定的项目。没有骰子不幸。我应该在创建字段的部分添加一些内容吗<代码>$(“#添加”)。单击(函数(){$('#USStateTaxBox')。克隆(true)。在('#buttonholder')之前插入;返回false;})代码>@BN83我更新了我的答案。同样,我认为发生的情况是,当你调用$(“select”)
和.find(“”
)时,它会立即执行操作。因此,在事件发生后添加的任何项目都不会有事件发生,也不会成为先前查询项目列表的一部分。我们刚刚尝试过,但仍然没有成功。因此,我尝试将$.uniform.update()
函数添加到按钮$(“#update”)。单击(function(){$.uniform.update();})
这也没有更新它…@BN83你用的是什么浏览器?Mac上的Chrome,但已经在Firefox和Safari上测试过了,同样的问题。它的样式,但只是不显示选定的项目。没有骰子不幸。我应该在创建字段的部分添加一些内容吗<代码>$(“#添加”)。单击(函数(){$('#USStateTaxBox')。克隆(true)。在('#buttonholder')之前插入;返回false;})代码>@BN83我更新了我的答案。同样,我认为发生的情况是,当你调用$(“select”)
和.find(“”
)时,它会立即执行操作。因此,在事件发生后添加的任何项目都不会有事件发生,也不会成为先前查询项目列表的一部分。我们刚刚尝试过,但仍然没有成功。因此,我尝试将$.uniform.update()
函数添加到按钮$(“#update”)。单击(function(){$.uniform.update();})
这也没有更新它…@BN83你用的是什么浏览器?Mac上的Chrome,但已经在Firefox和Safari上测试过了,同样的问题。它设置样式,但不显示所选项目。