将以逗号分隔的数字强制转换为字符串,但JavaScript函数不会返回结果,但手动输入值可以正常工作

时间:2019-05-22 13:24:13

标签: javascript jquery-select2

我有一个JavaScript函数,该函数用于从asp.net标签中检索标签ID号(以逗号分隔)。 (仅供参考,这与jQuery select2 multi select下拉列表一起使用)。当我尝试从代码中读取由逗号分隔的数字字符串时,我没有得到任何结果。浏览器控制台中没有错误。但是,如果我手动插入数据,则效果很好-甚至认为这两种情况下的数据看起来完全相同。这是一个示例:

这很棒:

function GetTags() {           
$(".js-class").val([1,2]); //manually entering the numbers here.
$(".js-class").trigger('change');
}

当我尝试从标签中提取数字时,即使字符串完全相同:1,2

function GetTags() {      
var data = document.getElementById('MainContent_lblTagIDS').innerText; //1,2 is being returned from this label
$(".js-class").val([data]);
$(".js-class").trigger('change');
}

这是我在方法背后的代码中解析数据的方式:

 var SelectedValues = dt.AsEnumerable().Select(s => s.Field<int>("TAGIDS")).ToArray();
 lblTagsIDS.Text = string.Join(",", SelectedValues);
 ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "myFunction", "GetTags();", true);

2 个答案:

答案 0 :(得分:0)

这是普通的JS

HTML

<input id="t" onchange="changeHandler()" type="text" value="" />
<p id="p"></p>

JS

function changeHandler() {
    var text = document.querySelector('#t').value;
    document.querySelector("#p").innerHTML = "\'"+text+ "\'";
}

答案 1 :(得分:0)

这是我找到的解决方案。我需要通过调用split将每个数字保持在不同的序列数组中。然后,我使用jQuery each()函数遍历目标jQuery对象的每个元素。

function GetTags() {
    var data = document.getElementById('MainContent_lblTagsIDS').innerText;    
    var newarray = data.split(",");
    $.each($(".js-class"), function () {
        $(this).val(newarray);
    });
    $(".js-class").trigger('change'); // Notify any JS components that the value changed);
}