Javascript 多个下拉列表和单选按钮
我这里有两个关于香草JavaScript的问题。我不能使用jQuery 一,。创建多个下拉列表 我有一个JavaScript函数:Javascript 多个下拉列表和单选按钮,javascript,html,Javascript,Html,我这里有两个关于香草JavaScript的问题。我不能使用jQuery 一,。创建多个下拉列表 我有一个JavaScript函数: function loadTheDropdowns() { var oTxt; for (var i = 0; i < 11; ++i) { var oEle = document.createElement('option'); if (i == 0) { oTxt = document
function loadTheDropdowns() {
var oTxt;
for (var i = 0; i < 11; ++i) {
var oEle = document.createElement('option');
if (i == 0) {
oTxt = document.createTextNode("select your tenure");
oEle.setAttribute('disabled', 'disabled');
oEle.setAttribute('selected', 'selected');
oEle.appendChild(oTxt);
} else {
oTxt = document.createTextNode(i);
oEle.appendChild(oTxt);
}
document.getElementById('compTenure').appendChild(oEle);
document.getElementById('posTenure').appendChild(oEle);
}
}
问题是,它只检查是否选中了第一个单选按钮。如果我删除该[0],它将向RB not check发出警报,即使我正在选择单选按钮
如何解决这个问题?第一个答案:这是一个变量引用问题。您必须创建两个不同的oEle元素或使用oEle.cloneNode;像 第二个答案:只取第一个复选框元素,必须像这样循环它们:
function check(name) {
var cprb = document.getElementsByName(name);
for(var i = 0; i<cprb.length;i++){
if(cprb[i].checked)
return true;
}
}
function validate() {
if(!check('cprb1') && !check('cprb2') && !check('cprb3') && !check('cprb4') && !check('cprb5') && !check('cprb6'))
alert("RB not check");
}
第一个答案:这是一个变量参考问题。您必须创建两个不同的oEle元素或使用oEle.cloneNode;像 第二个答案:只取第一个复选框元素,必须像这样循环它们:
function check(name) {
var cprb = document.getElementsByName(name);
for(var i = 0; i<cprb.length;i++){
if(cprb[i].checked)
return true;
}
}
function validate() {
if(!check('cprb1') && !check('cprb2') && !check('cprb3') && !check('cprb4') && !check('cprb5') && !check('cprb6'))
alert("RB not check");
}
对于第一个问题,将option元素附加到第一个下拉列表后,可以创建option元素的克隆并附加到第二个下拉列表。如果不克隆,则option元素始终附加到第二个下拉列表,而第一个下拉列表为空 window.onload=函数{loadDropDowns;} 函数加载下拉列表{ var-oTxt; 对于变量i=0;i<11;++i{ var oEle=document.createElement'option'; 如果i==0{ oTxt=document.createTextNode选择您的任期; setAttribute'disabled'、'disabled'; setAttribute'selected'、'selected'; oEle.appendChildoTxt; }否则{ oTxt=document.createTextNodei; oEle.appendChildoTxt; } document.getElementById'complexture'。appendChildoEle; var oPos=oEle.cloneNodetrue; document.getElementById'posTenure'.appendChildoPos; } } 你在这家公司工作了多少年 你在目前的职位上工作了多少年
对于第一个问题,将option元素附加到第一个下拉列表后,可以创建option元素的克隆并附加到第二个下拉列表。如果不克隆,则option元素始终附加到第二个下拉列表,而第一个下拉列表为空 window.onload=函数{loadDropDowns;} 函数加载下拉列表{ var-oTxt; 对于变量i=0;i<11;++i{ var oEle=document.createElement'option'; 如果i==0{ oTxt=document.createTextNode选择您的任期; setAttribute'disabled'、'disabled'; setAttribute'selected'、'selected'; oEle.appendChildoTxt; }否则{ oTxt=document.createTextNodei; oEle.appendChildoTxt; } document.getElementById'complexture'。appendChildoEle; var oPos=oEle.cloneNodetrue; document.getElementById'posTenure'.appendChildoPos; } } 你在这家公司工作了多少年 你在目前的职位上工作了多少年
张贴工作日志snippet@ShadowFiend我的错,对不起,我的代码中有这个,一个输入错误,错过了将它添加到问题中,更新了我的问题帖子snippet@ShadowFiend我的错,对不起,我的代码中有这个,一个输入错误,没有将它添加到问题中,更新了我的问题
function validate() {
if (!document.getElementsByName('cprb1')[0].checked ||
!document.getElementsByName('cprb2')[0].checked ||
!document.getElementsByName('cprb3')[0].checked ||
!document.getElementsByName('cprb4')[0].checked ||
!document.getElementsByName('cprb5')[0].checked ||
!document.getElementsByName('cprb6')[0].checked) {
alert("RB not check");
}
}
document.getElementById('posTenure').appendChild(oEle.cloneNode(true));
function check(name) {
var cprb = document.getElementsByName(name);
for(var i = 0; i<cprb.length;i++){
if(cprb[i].checked)
return true;
}
}
function validate() {
if(!check('cprb1') && !check('cprb2') && !check('cprb3') && !check('cprb4') && !check('cprb5') && !check('cprb6'))
alert("RB not check");
}