我有一个javascript函数,可以在asp: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;
}
代码隐藏
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更新的值
答案 0 :(得分:1)
答案 1 :(得分:0)
您确定正在调用javascript函数并且文本框的值已更新?
您是否尝试在JavaScript函数末尾添加以下内容以确保正在更新文本框的值?
alert(txtLangValue.value);