1

ASP.NETを介してDOMに書き込まれ、セッションにも保存されているいくつかの異なるhtml文字列があります。 これらの文字列には、「 」や「」などのhtmlエンティティが含まれています−

.html()を使用してaspによって印刷されたhtmlを取得し、AJAXを使用してバックグラウンドでhtmlを別のaspドキュメントにPOSTし、セッション内のhtmlをJSが書き込まれた後に取得したhtmlと比較しようとします。

私の問題は、それらを比較すると、JSからの文字列が「-blah」と表示され、aspセッションが明らかに「」と表示されること− blahです。JSをaspに一致させる、またはその逆にするにはどうすればよいですか?

ほとんどの文字列を一致させるServer.HTMLEncode(session( "name"))を使用してみましたが、' &'の' −'を' 'に変更し−ます。

どんな助けでも大いに感謝されるでしょう!前もって感謝します。

これがコードを表示するためのフィドルです。JSフィドルはaspを実行しません。 http://jsfiddle.net/JnKaT/3/

Jquery

$('#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();
});​

ASP

<!-- 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  
%>

ボタン

<button id="submit" name="Check my answers!!" align="left">Check my answers!</button>​
4

1 に答える 1

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
于 2012-12-09T21:10:19.473 に答える