私はJava EE Webアプリケーションを開発していて、jsも使用する必要があります.JPページには2つのボタンがあります:1つはupVoteとdownVoteです。最初にボタンを '$ {upVote}'にしたい同じユーザーが2回目にクリックしたときに、クリックして '$ {downVote}'を呼び出します。 プロセスの論理は、各ユーザーが質問ごとに1回投票できることを保証することです。しかし、なぜ私は望みどおりに動作しているのかわかりません。このコードが動作しないのはなぜですか(js関数)?
だから、私はthis.All答えを助ける必要があります。
マイコード:
<c:url var="User" value="/AQ/User">
<c:param name="answerUserId" value="${question.USERID}" />
</c:url>
<c:url var="Question" value="/AQ/UpdateQuestion">
<c:param name="questionId" value="${question.ID}" />
</c:url>
<c:url var="upVote" value="/AQ/UpVoteQuestion">
<c:param name="questionId" value="${question.ID}" />
<c:param name="qUserId" value="${question.USERID}"/>
</c:url>
<c:url var="downVote" value="/AQ/DownVoteQuestion">
<c:param name="questionId" value="${question.ID}" />
<c:param name="qUserId" value="${question.USERID}"/>
</c:url>
<script type="text/javascript">
var voteCounter = 0;
var votedQuestion = 0;
function control() {
if('${sessionScope[userId]}' <= 0){window.location.href='SignIn'}
else if(voteCounter >= 1 && votedQuestion == '${question.ID}') {window.location='${downVote}';}
else{
voteCounter++;
votedQuestion = '${question.ID}';
window.location='${upVote}';
return false;
}
}
function reverse() {
if('${sessionScope[userId]}' <= 0){window.location.href='SignIn'}
else if(voteCounter >= 1 && votedQuestion == '${question.ID}') {window.location='${upVote}';}
else{
voteCounter++;
votedQuestion = '${question.ID}';
window.location='${downVote}';
return false;
}
}
</script>
そして、私のボタンがあります:
<pre style="max-width: 35px; margin-right: 10px;">
<input class="vote-img" type="image"
src="${pageContext.request.contextPath}/resources/images/upVote.png"
id="vote" onclick="control()"/>
<br>
<label style="float: left; margin-left: 18px;"><c:out value="${question.VOTE }" /></label>
<input class="vote-img" type="image"
src="${pageContext.request.contextPath}/resources/images/downVote.png"
id="vote" onclick="reverse()"/>
</pre>
これは何をする予定ですか?代わりに何が起こるのですか?ブラウザ**の開発者**ツールコンソールのエラー? –
いいえ、エラーはありませんが機能は欲望として機能していません。この場合、私は複数のupVoteまたはdownVoteを行うことができます。質問ごとに1回だけしたいです。 –
入力imgタグを一度置き換えて投票した場合は、投票機能がキャストされているかどうかをチェックしてください。キャストされている場合は、逆にします。 –