0

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 を介して更新された値ではなく、テキスト ボックスの元の値になります。

4

2 に答える 2

0

そして、javascript 関数が呼び出され、テキストボックスの値が更新されていることは確かですか?

テキスト ボックスの値が更新されていることを確認するために、JavaScript 関数の最後に次のコードを追加してみましたか?

alert(txtLangValue.value); 
于 2013-04-03T16:14:53.583 に答える