关于使用jQuery连接两个Select Options val()的问题

Issue on Concatenating Two Select Options val() Using jQuery

本文关键字:Options Select val 问题 两个 于使用 jQuery 连接      更新时间:2023-09-26

我试图在这个演示中连接两个Select Option List结果的val(),但没有得到任何结果!我第一次尝试:

var res = senselectval+kwselectval;
$("#sum").on("click",function(){
  alert(res);
});

我在结果中得到了NaN,然后我尝试了:

var res = senselectval.concat(kwselectval);
$("#sum").on("click",function(){
  alert(res);
});

现在我得到了Uncaught TypeError: Cannot call method 'concat' of undefined,你能告诉我为什么会发生这种情况,以及我如何解决吗?

感谢

当脚本第一次运行时,当senselectvalkwselectval都未定义时,执行此行。。。

var res = senselectval+kwselectval;

尝试在单击事件中移动串联。。。

var res;
$("#sum").on("click",function(){
    res = senselectval + kwselectval;
    alert(res);
});

JsFiddle

您需要将concat行放在按钮click事件内,否则它在页面加载时执行,此时senselectvalnull,因此concat方法抛出exception

代替:

var res = senselectval.concat(kwselectval);  
    $("#sum").on("click",function(){

    alert(res);
    });

这样做:

 $("#sum").on("click",function(){
    var res = senselectval.concat(kwselectval);  
    alert(res);
    });

这是更新的脚本:

$(document).ready(function(){
var senselectval;
var kwselectval;
$('#senselect').change(function() {
    if($(this).val()==1){
        console.log($(this).val()+ "Cant be login")
    }
    else{
    senselectval =$(this).val();
        console.log(senselectval);
    }
});
$('#kwselect').change(function() {
    if($(this).val()==1){
        console.log($(this).val()+ "Cant be login")
    }
    else{
    kwselectval =$(this).val();
        console.log(kwselectval);
    }
});
//var res = senselectval+kwselectval;
$('#sum').click(function(){
    var res = senselectval.concat(kwselectval);
  alert(res);
});
});

这里是Fiddle演示

您需要使用事件委派方法,并将res变量值放入click函数中,如@Anthony Chu:

//res = senselectval + kwselectval; // not here
$(document).on("click","#sum",function(){
  res = senselectval + kwselectval;
  alert(res);
});

更新的fiddle

更改:

 var senselectval;
    var kwselectval;

至>

var senselectval="";
var kwselectval="";

只需定义两者;