我有一个页面。我有多个复选框。我希望用户选择三个不超过,一个复选框的值“不感兴趣”,如果用户点击这一切所有其他复选框必须必须禁用。因为我尝试了javascript。 这就是我试过的
function chkcontrol(j) {
var total = 0;
for (var i = 0; i < document.form1.user[portal_choice].length; i++) {
if (document.form1.user[portal_choice][i].checked) {
total = total + 1;
}
if (total > 3) {
alert("Please Select only three")
document.form1.user[portal_choice][j].checked = false;
return false;
}
}
}
我在portal_choice变量中收到错误。这是用数据库列名映射的,用户是我的表名。 帮助我这样做并建议我在用户点击“NOT INTERSTED”时禁用该复选框。并且它不是轨道3.0
感谢朋友考虑.........
答案 0 :(得分:1)
使用这种语法document.form1.user[portal_choice]
,您告诉Javascript您需要名为“form1”的表单,并从该表单中获取名为“user”的元素,并查看包含在其中的索引的元素。 (javascript)变量'portal_choice'。该变量未在您的函数中定义。
我不熟悉Ruby,但是从一些快速阅读来看,看起来你可以直接在html中引用Ruby变量,但不能在Javascript中引用。我认为你必须像<%= %>
这样包装它:
document.form1.user[<%= portal_choice %>].length
但是,我不明白为什么你会在这里使用Ruby变量。你只想迭代所有的复选框,对吧?我不认为复选框元素是二维数组,如
document.form1.user[portal_choice][i]
我认为你真的只想这样做:
function chkcontrol(j) {
var total = 0;
for (var i = 0; i < document.form1.user.length; i++) {
if (document.form1.user[i].checked) {
total = total + 1;
}
if (total > 3) {
alert("Please Select only three")
document.form1.user[j].checked = false;
return false;
}
}
}
选中此fiddle