javascript更新后,Asp文本框文本属性不正确

asp textbox text property not correct after javascript update

本文关键字:文本 不正确 属性 Asp 更新 javascript      更新时间:2023-09-26

我有一个javascript函数,将文本添加到asp:文本框。但是一旦我尝试在c# Codebehind中保存文本框,文本框。属性仍然保存原始值,而不是更新后的值。下面是代码

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;
}
后台代码

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();
                }
            }
        }

txtLANG.Text.Split调用的结果是文本框的原始值,而不是通过javascript更新的值

咳,我知道是怎么回事了。漫长的一天,处理复杂的事情。我忘记用if(!IsPostback){}包装我的数据加载代码,所以它是在将值保存到数据库之前重新加载原始记录数据。对不起!

并且您确定javascript函数正在被调用并且文本框正在更新其值?

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

alert(txtLangValue.value);