我有几个不同的html字符串通过ASP.NET写入DOM并存储在会话中。这些字符串包含“
”和“−
”等html实体。
我使用.html()来获取asp打印的html,然后我在后台使用AJAX将html POST到另一个asp文档中,我尝试将会话中的html与JS抓取后的html进行比较写的。
我的问题是,当比较它们时,来自JS的字符串将显示为“ - blah”,而asp会话显然显示为“− blah
”。我怎样才能让JS与asp相匹配?或者反过来?
我尝试过使用Server.HTMLEncode(session(“name”))来获取大多数要匹配的字符串,但是将“&
”上的“−
”更改为“{{1 }}”。
任何帮助都会受到极大的关注!提前谢谢。
这是显示代码的小提琴。 JS小提琴不运行asp。 http://jsfiddle.net/JnKaT/3/
Jquery的
−
ASP
$('#submit').click(function(st) {
$('input[type=radio]:checked').each(function(rc) {
var userAns = $(this).parent().next('td').html();
console.log(userAns);
$.ajax({
cache: false,
type: "POST",
data: userAns,
url: "/beta/includes/answerCheck.asp",
success: function(msg) {
console.log(msg+" ");
},
error: function(err) {
console.log(err.responseText);
}
});
});
return false;
st.preventDefault();
});
按钮
<!-- creating dynamic session name for html string -->
<%
for j = 1 to itemCount
sessionName = "correctAns"&(j)
session(sessionName) = session("d1")
response.write("<div class='qans'>"&session(sessionName)&"</div>")
next
%>
<!-- asp used by AJAX to compare the session to the js string -->
<%
userAns = request.form()
corSessionName = "correctAns"&(qn)
userSessionName = "userAns"&(qn)
if userAns = session(corSessionName) then
response.write("correct! ")
response.write("ASP:"&session(corSessionName))
response.write(" ,user:"&userAns)
end if
if userAns <> session(corSessionName) then
session(userSessionName) = userAns
response.write("incorrect :( ")
response.write("ASP:"&session(corSessionName))
response.write(" ,user:"&userAns)
end if
%>
答案 0 :(得分:0)
正如Sime Vidas所说我无法从DOM中获取HTML实体以便解决我的问题我在asp会话中解码了html字符串以使其与DOM上的html相匹配
Dim I
tempAns = Replace(tempAns, """, Chr(34))
tempAns = Replace(tempAns, "<" , Chr(60))
tempAns = Replace(tempAns, ">" , Chr(62))
tempAns = Replace(tempAns, "&" , Chr(38))
tempAns = Replace(tempAns, " ", " ")
For I = 1 to 255
tempAns = Replace(tempAns, "&#" & I & ";", Chr(I))
Next
session(sessionName) = tempAns