在第一个jsp页面
主.jsp
<div id="backgroundPopup"></div>
<div class="sharePost">
</div>
<s:iterator var="msge" value="messageList">
<div class="message" id="<s:property value="messageid"/>_<s:property value="ReceivedById"/>">
<s:property value="messageid"/>
<span class="share">
<a href="#" id="sharethis" title="share this">Share</a>
</span>
<span class="sharecount">
<s:if test="%{totalShare>0}">
<s:property value="totalShare"/>
</s:if>
</span>
</div>
</s:iterate>
<script>
event.preventDefault();
var msgid=$(this).parents('.message').attr('id');
var msgid1=msgid.substring(0,msgid.lastIndexOf('_'));
var receiverid= msgid.substring(msgid.lastIndexOf('_')+1);
var dataString = 'messageid='+ msgid1+'&receivedById='+receiverid;
alert(dataString);
if($('#'+msgid+' .sharecount').html(""))
{
$('#'+msgid+' .sharecount').html("0");
}
$shareNo= parseInt($('#'+msgid+' .sharecount').html(), 10);
$shareNo++;
$('#'+msgid+' .sharecount').html(""+$shareNo);
$.ajax({
type: "POST",
url: "fetchSharePage",
dataType: "text html",
data: dataString,
success: function(data) {
$("#backgroundPopup").css("opacity", "0.7");
$("#backgroundPopup").fadeIn(0001);
$(".sharePost").html(data);
}
});
});
</script>
这是我的第一个 jsp 页面,我想在其中获取包含消息详细信息的共享页面。此页面正确获取 shareIt.jsp 中的消息详细信息 shareIt 是一个弹出 div。
shareIt.jsp
<div class="share-data">
<h1>Share this to your profile
</h1>
<div id="messages_and_pages">
<div id="messages" class="messages">
<s:iterator var="msge" value="messageList">
<div class="message" id="<s:property value="messageid"/>">
<s:property value="messageid"/>
</div>
<input type="hidden" value="<s:property value="messageid"/>"
id="message-id">
<input type="hidden" value="<s:property value="sentBy"/>"
id="sent-by">
<input type="hidden" value="<s:property value="authorId"/>"
id="author">
</s:iterate>
<div class="action-set">
<input id="share-ok" type="submit" value="Share">
<input id="share-cancle" type="button" value="Cancel">
</div>
<script>
$(document).on('click', '#share-ok', function(event){
var msgid=$("#message-id").val();
var author=$("#author").val();
var shareString = 'messageid='+ msgid+ '&authorId='+author;
event.preventDefault();
alert(shareString);
$.ajax({
type: "POST",
url: "shareThisMessage",
dataType: "text html",
data: shareString,
success: function(data) {
$(".sharePost").html(data);
$(".share-data").hide(1000);
$(".sharePost").html("");
}
});
});
$(document).on('click', '#share-cancle', function(event){
hidePopup();
});
function hidePopup() {
$("#backgroundPopup").fadeOut("normal");
$(".share-data").hide();
$(".sharePost").html("");
}
$(this).keyup(function(event) {
if (event.which == 27) {
hidePopup();
}
});
</script>
这里使用的 CSS 是
.share-data{
border: 1px solid #c6c6c6;
background-color: white;
margin-bottom: 6px;
margin-top: 6px;
position: fixed;
z-index: 5;
top: 50%;
left: 50%;
width:600px;
background:#6b6a63;
margin-left: -304px;
margin-top: -280px;
}
#backgroundPopup {
z-index:4;
position: fixed;
display:none;
height:100%;
width:100%;
background:#000000;
top:0px;
left:0px;
}
代码工作正常。问题是在单击共享按钮时
1 次表单正在提交 1 次
然后,如果我单击另一个消息共享按钮,它将提交 3 次
然后,如果我单击另一个消息共享按钮,它将提交 7 次,依此类推。
我不明白为什么它会多次提交。