我有点问题。我有七个<select>
个。从左到右计数。
<select id="sel_1" onchange="evalonsubmit('sel_1',1);">
<select id="sel_2" onchange="evalonsubmit('sel_2',2);">
以这种方式从1到7。
逻辑很简单。点击检查,如果该值为-1,则禁用右侧的所有内容并将其设置为-1。如果不是-1则启用所点击的权利(+1可以说)
这就是代码:
function evalonsubmit(ID, n)
{
var ElementID = document.getElementById(ID);
if(ElementID.value = -1) {
for (var i = n + 1; i <= 7; i++){
var newID = "sel_" + i;
var newValue = document.getElementById();
newValue.disable = true;
newValue.value = -1
}
} else {
var newID = "sel_"+(n+1)
var newValue = document.getElementById();
newValue.disable = false;
}
}
有人可以帮助JS黑客吗?
答案 0 :(得分:1)
不太确定你想要什么,但可能应该是:
if (ElementID.value == -1){
// ^--- two = , otherwise you assign the value
和
var newID = "sel_" + i;
var newValue = document.getElementById(newID);
// pass parameter ---^
else
分支相同。
除此之外,我会给你的变量更有意义的名字。例如。 ElementID
允许您假设该值是ID。但事实并非如此。它是一个DOM元素。与newValue
相同。
答案 1 :(得分:1)
我刚刚修复了代码中的一些简单错误。
function evalonsubmit(ID, n)
{
var ElementID = document.getElementById(ID);
if (ElementID.value == -1){
for (var i=n+1; i <= 7; i++){
var newID = "sel_" + i;
var newValue = document.getElementById(newID);
newValue.disable = true;
newValue.value = -1
}
} else {
var newID = "sel_"+(n+1)
var newValue = document.getElementById(newID);
newValue.disable = false;
}
}
答案 2 :(得分:0)
您在对document.getElementById
的几次调用中缺少参数,而禁用<select>
的属性为disabled
,而不是disable
。您还需要=
==
。
function evalonsubmit(ID, n)
{
var ElementID = document.getElementById(ID);
if (ElementID.value == -1){
for (var i=n+1; i <= 7; i++){
var newID = "sel_" + i;
var newValue = document.getElementById(newID);
newValue.disabled = true;
newValue.value = -1;
}
} else {
var newID = "sel_"+(n+1);
var newValue = document.getElementById(newID);
newValue.disabled = false;
}
}
答案 3 :(得分:0)
为什么不这样做:
<div class="wrapper">
<select onchange="evalonsubmit(this);" />
<select onchange="evalonsubmit(this);" />
<select onchange="evalonsubmit(this);" />
</div>
function nextElement(current)
{
do
current = current.nextSibling;
while (current && current.nodeType != 1);
return current;
}
function evalonsubmit(elem)
{
if(elem.value == -1)
while(elem = nextElement(elem)) {
elem.disabled = true;
elem.value = -1
}
else if(elem = nextElement(elem))
elem.disabled = false;
}
这消除了对id
元素<select>
s的需求,因为可以使用.nextSibling
抓取以下元素。 nextElement()
函数是为了避免抓取文本节点。