我正在使用此方法随机回答表单
$('table').filter(function () {
return ($(this).find('input').size() > 0);
}).find('tr').each(function () {
$(this).find('input').filter(function () {
return (Math.round(Math.random()) == 1);
}).each(function () {
var typ = this.type;
if (typ == 'checkbox' || typ == 'radio') {
this.checked = true;
}
if (typ == 'select' || typ == 'select-one') {
var value = $.map(this, function (elt, i) {
return $(elt).val();
}).sort()[0];
this.val(value);
}
if (typ = "text" || typ == "textarea") {
$(this).val(Math.floor(Math.random() * 11));
}
});
});
答案 0 :(得分:1)
if (typ == 'select' || typ == 'select-one') {
var value = $.map(this, function (elt, i) {
return $(elt).val();
}).sort()[0];
this.val(value);
}
input标记没有任何select
类型,您无法以this.val(value);
方式设置所选值,因为val()是jQuery函数,请尝试{ {1}}(用于输入)。如果您想选择其选项,则必须更改您的slector以包含$(this).val(value)
元素。
select
使用单个 if (typ = "text" || typ == "textarea") {
$(this).val(Math.floor(Math.random() * 11));
}
代替=
,您将重新声明变量使条件==
。
您还应该能够通过不使用find()和each()来缩短代码。以下选择器会在true
中的input
元素中选择tr
元素,然后按照示例中的方式对其进行随机过滤。
table