Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下拉框和进度条_Javascript_Jquery_Html_Css - Fatal编程技术网

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=真;
}
});

是的,我注意到所有其他答案,我可以移动进度条,但单击它们后,我可以更改答案,但它不会再移动进度条