我有一个将文本添加到 asp:textbox 的 javascript 函数。但是,一旦我尝试将文本框保存在 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;
}
代码隐藏
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 更新的值