Javascript 下拉框和进度条
所以我正在编写代码,我试图做到这一点,当我单击其中一个名称时,它会根据选项值将进度条移动一个特定的量Javascript 下拉框和进度条,javascript,jquery,html,css,Javascript,Jquery,Html,Css,所以我正在编写代码,我试图做到这一点,当我单击其中一个名称时,它会根据选项值将进度条移动一个特定的量 测试GG 选择一个。。。 迈克 安得烈 迈克尔 丹尼 科兹 安得烈 皮特 肖恩 多姆 马克 娄 抢劫 选择一个。。。 迈克 安得烈 迈克尔 丹尼 科兹 安得烈 皮特 肖恩 多姆 马克 娄 抢劫 //document.getElementById(“selectA”).selectedIndex; var doneA=假; $('#selectA')。在('change',function()
测试GG
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
//document.getElementById(“selectA”).selectedIndex;
var doneA=假;
$('#selectA')。在('change',function()上{
如果(!doneA){
$(“#progressBar”).attr('value',$(“#progressBar”).prop('value')+25);
多尼亚=真;
}
});
var doneB=假;
$('#selectB')。在('change',function()上{
if(!doneB){
$(“#progressBar”).attr('value',$(“#progressBar”).prop('value')+25);
doneB=真;
}
});
您可以通过jquery检索所选选项的值。然而,我不太确定你的逻辑。这样可以让用户更改答案并正确更新进度条。它不是在选择项更改时向进度条添加值,而是计算每次选择项更改时该值应为多少
function update_progressbar() {
var opt1 = parseInt( $('option:selected', $('#selectA')).val() );
var opt2 = parseInt( $('option:selected', $('#selectB')).val() );
var total = isNaN( opt1 ) ? 0 : opt1;
if ( !isNaN( opt2 ) ) {
total += opt2;
}
$("#progressBar").prop( 'value', total )
}
$('#selectA').on( 'change', update_progressbar );
$('#selectB').on( 'change', update_progressbar );
在这里拉小提琴:
我还必须做一个改变,以检查南斯。我意识到在第一次选择更改时没有任何变化,因为parseInt()返回非值的NaN。另外,您不想使用.attr来调整占位符值:use.prop,就像您获取值一样。请参见您可以通过jquery检索所选选项的值。然而,我不太确定你的逻辑。这样可以让用户更改答案并正确更新进度条。它不是在选择项更改时向进度条添加值,而是计算每次选择项更改时该值应为多少
function update_progressbar() {
var opt1 = parseInt( $('option:selected', $('#selectA')).val() );
var opt2 = parseInt( $('option:selected', $('#selectB')).val() );
var total = isNaN( opt1 ) ? 0 : opt1;
if ( !isNaN( opt2 ) ) {
total += opt2;
}
$("#progressBar").prop( 'value', total )
}
$('#selectA').on( 'change', update_progressbar );
$('#selectB').on( 'change', update_progressbar );
在这里拉小提琴:
我还必须做一个改变,以检查南斯。我意识到在第一次选择更改时没有任何变化,因为parseInt()返回非值的NaN。另外,您不想使用.attr来调整占位符值:use.prop,就像您获取值一样。请参见这是可能的。只需捕获选项的值(不过先将其转换为int)
var doneA=false;
$('#selectA')。在('change',function()上{
如果(!doneA){
var progressBarVal=parseInt($(“#progressBar”).val();
var addVal=parseInt($(this.val());
$(“#progressBar”).attr('value',+addVal);
多尼亚=真;
}
});
var doneB=假;
$('#selectB')。在('change',function()上{
if(!doneB){
var progressBarVal=parseInt($(“#progressBar”).val();
var addVal=parseInt($(this.val());
$(“#progressBar”).attr('value',+addVal);
doneB=真;
}
});代码>
测试GG
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
这是可能的。只需捕获选项的值(不过先将其转换为int)
var doneA=false;
$('#selectA')。在('change',function()上{
如果(!doneA){
var progressBarVal=parseInt($(“#progressBar”).val();
var addVal=parseInt($(this.val());
$(“#progressBar”).attr('value',+addVal);
多尼亚=真;
}
});
var doneB=假;
$('#selectB')。在('change',function()上{
if(!doneB){
var progressBarVal=parseInt($(“#progressBar”).val();
var addVal=parseInt($(this.val());
$(“#progressBar”).attr('value',+addVal);
doneB=真;
}
});代码>
测试GG
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
您可以使用$(this).val()查找所选值
测试GG
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
//document.getElementById(“selectA”).selectedIndex;
var doneA=假;
$('#selectA')。在('change',function()上{
如果(!doneA){
$(“#progressBar”).attr('value',$(“#progressBar”).prop('value')+$(this.val());
多尼亚=真;
}
});
var doneB=假;
$('#selectB')。在('change',function()上{
if(!doneB){
$(“#progressBar”).attr('value',$(“#progressBar”).prop('value')+$(this.val());
doneB=真;
}
});
您可以使用$(this).val()查找所选值
测试GG
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
选择一个。。。
迈克
安得烈
迈克尔
丹尼
科兹
安得烈
皮特
肖恩
多姆
马克
娄
抢劫
//document.getElementById(“selectA”).selectedIndex;
var doneA=假;
$('#selectA')。在('change',function()上{
如果(!doneA){
$(“#progressBar”).attr('value',$(“#progressBar”).prop('value')+$(this.val());
多尼亚=真;
}
});
var doneB=假;
$('#selectB')。在('change',function()上{
if(!doneB){
$(“#progressBar”).attr('value',$(“#progressBar”).prop('value')+$(this.val());
doneB=真;
}
});
是的,我注意到所有其他答案,我可以移动进度条,但单击它们后,我可以更改答案,但它不会再移动进度条