将用ASP编写的html实体与JS读取的html实体进行比较

时间:2012-12-09 19:06:31

标签: javascript jquery html ajax entities

我有几个不同的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  
%>

1 个答案:

答案 0 :(得分:0)

正如Sime Vidas所说我无法从DOM中获取HTML实体以便解决我的问题我在asp会话中解码了html字符串以使其与DOM上的html相匹配

Dim I
tempAns = Replace(tempAns, "&quot;", Chr(34))
tempAns = Replace(tempAns, "&lt;"  , Chr(60))
tempAns = Replace(tempAns, "&gt;"  , Chr(62))
tempAns = Replace(tempAns, "&amp;" , Chr(38))
tempAns = Replace(tempAns, "&nbsp;", " ")

For I = 1 to 255
    tempAns = Replace(tempAns, "&#" & I & ";", Chr(I))
Next

session(sessionName) = tempAns