这会产生错误并破坏功能。
错误说"无法读取属性' onchange'未定义"即使我试图测试onchange以防止出错。
这是我的功能:
function ClearAndRun(element) {
$el = $("select, input");
$next = $el.eq($el.index(element) + 1);
for(i=$el.index($next);i<$el.length;i++) {
if($next.get(0).onchange != null) {
$next.val("");
$next.change;
}
$next = $el.eq($el.index(element) + i);
}
}
<input onchange="ClearAndRun(this)">
我尝试了一些不同的测试onchange值,他们似乎都给出了这个错误。谢谢你的帮助!
答案 0 :(得分:0)
使用set /p
而$.each
未拨打.change
,您需要括号
change
答案 1 :(得分:0)
我想将值设置为空
这会将每个std::vector<int> vec{1, 2};
std::vector<std::reference_wrapper<int>> refs(vec.begin(), vec.end());
vec[1] = 3;
std::copy(refs.begin(), refs.end(), std::ostream_iterator<int>(std::cout, " "));
/ select
input
...并运行他们的onchange函数,这些函数准备好无需回答
这将被调用,因为您已在其中一个元素上调用$element.each(function() {
if ($(this).val() != null) {
$(this).val("");
$(this).change();
}
});
.change()
听起来,当为任何元素调用$element.on('change', function() {
$('the_form').reset()
});
方法时,您希望重置表单...
如果重置这些答案并且运行了onchange函数,它基本上会重置表单...
(取自here)
的示例据我了解你的问题,我不确定你什么时候开始谈论其他儿童元素......
...这可能会根据他们的答案隐藏或显示跨度
但是,此代码会重置.change()
/ input
的所有值并调用其select
方法。我能看到的问题是,对于每个元素,你重置的形式会给DOM带来额外的压力并且不理想。
N.B:如果您没有设置这些元素的值,则可以使用.change()
来检查元素内的文本
HTML text()
属性似乎只适用于onchange
个元素。从参考文献中我无法看到select
是否可以实现这一点......
当用户更改元素的选定选项时执行JavaScript:
(Credit w3schools)
答案 2 :(得分:0)
所以这就是我最终需要的东西:
function ClearAndRunFuncs(element) {
$el = $("input[name!=''][onchange!=''], select[name!=''][onchange!='']");
for(i=$el.index(element)+1;i<$el.length;i++) {
$el.eq(i).val("");
$el.eq(i).change();
}
}
我没有意识到你可以根据选择器上的属性设置条件。因此,这可以防止出现任何错误,因为此功能正在处理更改中缺少的字段,甚至名称值都没有。