0

时,为什么这个(')会出现为什么这个不需要的字符添加了动态创建的文本框?如何拍摄出为什么当我动态添加

onkeyup="numeri_validator(this,'clockin_100001_1','total_100001_1')" 

这背后

string s="numeri_validator(this,'" + textboxClockIn.ID.ToString() + "','"+textboxTotal.ID.ToString()+"')"; 

      string decodedString = System.Web.HttpUtility.HtmlDecode(s); 

      textboxClockIn.Attributes.Add("onkeyup",decodedString); 
      textboxClockOut.Attributes.Add("onkeyup", "numeri_validator(this,'" + textboxClockOut.ID + "','" + textboxTotal.ID + "')"); 

两种方式相同的结果代码

当我打破这是我的休息导致

numeri_validator(this,'clockin_100001_1','total_100001_1') 

请咨询我

T hanks

+2

你的性格是不是真的不想要的。 '是'的表示,就像你想要的一样。 –

+0

但JavaScript是以此为参数值如何避免这种情况 – aas

回答

2

这实际上正是预期的。发生了什么事是你的代码已经“逃脱”了可能导致HTML或SQL问题的所有字符。如果它没有这样做,你可能会得到奇怪的结果,你的文本意外终止或者有错误的数据。

在这种情况下,您在字符串中的符号将被更改为其转义版本,在本例中为'。

如果你不希望发生这种情况,那么你不应该使用HTMLDecode()。但是,建议不要这样做,因为如果尝试解析该代码,可能会导致问题。

0

实际上Javascript不会与此混淆(')它将作为一个'但如果你是动态创建控件,那么你需要很小心地注意由.net分配的ID会导致问题,如果你不知道这

谢谢

相关问题