更新javascript后asp textbox文本属性不正确

更新javascript后asp textbox文本属性不正确,javascript,asp.net,Javascript,Asp.net,我有一个javascript函数,可以向asp:textbox添加文本。但是,一旦我尝试将textbox保存在C#Codebehind中,textbox.Text属性仍然保留原始值,而不是更新后的值。这是密码 Javascript function GetLanguages(e) { var newLang = e.nextSibling; var checkedValues = ''; var chkEng = document.getElementById ("<

我有一个javascript函数,可以向asp:textbox添加文本。但是,一旦我尝试将textbox保存在C#Codebehind中,textbox.Text属性仍然保留原始值,而不是更新后的值。这是密码

Javascript

function GetLanguages(e)
{
    var newLang = e.nextSibling;
    var checkedValues = '';
    var chkEng = document.getElementById ("<%=chkEnglish.ClientID %>");
    var chkFr = document.getElementById ("<%=chkFrench.ClientID %>");
    var chkList1 = document.getElementById ("<%=chkTopLanguages.ClientID %>");
    var arrayOfCheckBoxes = chkList1.getElementsByTagName("input");
    var txtLangValue = document.getElementById("<%=txtLANG.ClientID %>");

    if(chkEng.checked)
        checkedValues = "English";

    if(chkFr.checked)
    {
        if(checkedValues.length > 0)
            checkedValues += ";";

        checkedValues += "French";
    }

    for(var i=0;i<arrayOfCheckBoxes.length;i++)
    {
        var checkBoxRef = arrayOfCheckBoxes[i];

        if(checkBoxRef.checked)
        {
            var labelArray = checkBoxRef.parentNode.getElementsByTagName('label');

            if ( labelArray.length > 0 )
            {
                if ( checkedValues.length > 0 )
                    checkedValues += ";";

                checkedValues += labelArray[0].innerHTML;
            }
        }
    }

    txtLangValue.value = checkedValues;
}
函数GetLanguages(e) { var newLang=e.nextSibling; var checkedValues=''; var chkEng=document.getElementById(“”); var chkFr=document.getElementById(“”); var chkList1=document.getElementById(“”); var arrayofcheckbox=chkList1.getElementsByTagName(“输入”); var txtLangValue=document.getElementById(“”); 如果(已检查) checkedValues=“英语”; 如果(chkFr.已选中) { 如果(checkedValues.length>0) 检查值+=“;”; checkedValues+=“法语”; } 对于(变量i=0;i 0) { 如果(checkedValues.length>0) 检查值+=“;”; checkedValues+=labelArray[0]。innerHTML; } } } txtLangValue.value=checkedValues; } 代码隐藏

List<string> lstItemsChecked = new List<string>(txtLANG.Text.Split(';'));

        foreach (string language in lstItemsChecked)
        {
            foreach (DataRow row in dsTopLanguages.Tables[0].Rows)
            {
                if (row["Language"].ToString() == language)
                {
                    if (strLanguages.Length > 0)
                        strLanguages += ";";

                    strLanguages += row["LanguageID"].ToString();
                }
            }
        }
List lstItemsChecked=新列表(txtLANG.Text.Split(“;”);
foreach(lstItemsChecked中的字符串语言)
{
foreach(数据操作语言中的数据行。表[0]。行)
{
if(行[“语言”].ToString()==语言)
{
如果(strLanguages.Length>0)
strLanguages+=“;”;
strLanguages+=行[“LanguageID]”。ToString();
}
}
}

txtLANG.Text.Split调用的结果是文本框的原始值,而不是通过javascript更新的值,并且您确定正在调用javascript函数并且文本框正在更新其值吗

您是否尝试过在JavaScript函数末尾添加以下内容以确保文本框的值正在更新

alert(txtLangValue.value); 

呃,找出了问题所在。漫长的一天,复杂的事情。我忘了用if(!IsPostback){}包装我的数据加载代码,所以它在将值保存到数据库之前重新加载原始记录数据。对不起

那么,有没有办法在codebehind中检索此值,或者我必须以某种方式强制回发?请编辑您的原始问题,而不是在评论区中写入。“那么,有没有办法在codebehind中检索此值,或者我必须以某种方式强制回发?”只有在回发页面后才能获得新值我如何在javascript中强制回发?我假设我必须在GetLanguages()函数的末尾强制执行此操作,然后更正?您可以尝试在文本框中强制发帖。将autopostback属性设置为true。您还可以尝试获取表单并在javascript函数结束时提交表单。var form=documents.form[“myForm”];表单提交();是的,这是有效的,但是在每次调用这个函数时发回消息是非常难看的。现在每次单击复选框时,整个页面都会刷新:(