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')

请给我提意见

4

2 回答 2

2

这实际上正是预期的结果。发生的事情是您的代码已经“转义”了所有可能导致 HTML 或 SQL 出现问题的字符。如果它不这样做,您可能会在文本意外结束或数据错误时得到奇怪的结果。

在这种情况下,'字符串中的符号将更改为转义版本,在这种情况下为 '.

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

于 2013-10-24T13:49:08.417 回答
0

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

谢谢

于 2013-10-24T15:22:04.627 回答