string.format在下面的html上创建一个非常奇怪的结果。我相信它与内联if块有关,但我还没想到它。请帮忙!
String.Format(@"<input type='text'
name='PostalCode'
id='PostalCode'
onfocus='if(this.value == '{0}')
{{ this.value = ''; }}'
value='{1}'
class='enter-postal' />",
"Enter Postal Code", "Enter Postal Code")
答案 0 :(得分:3)
我看到的并不奇怪,所以不知道你的期望,我不确定问题是什么。
我注意到onfocus='if(this.value == '{0}') {{ this.value = ''; }}'
中的一个错误,因为你在属性中有单引号,而且JS也没有用。尝试:
String.Format(@"<input type='text' name='PostalCode' id='PostalCode' onfocus=""if(this.value == '{0}') {{ this.value = ''; }}"" value='{1}' class='enter-postal' />",
"Enter Postal Code", "Enter Postal Code")
使用变量而不是文字,您还需要执行.Replace("'", "\\'")
,这样您就不会因为数据中的撇号而导致相同的问题。
答案 1 :(得分:1)
在onFocus
属性中,使用转义双引号。
String.Format(@"<input type='text'
name='PostalCode'
id='PostalCode'
onfocus=\"if(this.value == '{0}')
{{ this.value = ''; }}\" value='{1}'
class='enter-postal' />",
"Enter Postal Code", "Enter Postal Code")
答案 2 :(得分:1)
在这里试试这个:
String.Format(@"<input type='text' name='PostalCode' id='PostalCode' onfocus='if(this.value == ""{0}"") {{ this.value = """"; }}' value='{1}' class='enter-postal' />", "Enter Postal Code", "Enter Postal Code")