單位做了個發佈確認單的功能,選擇checkbox後點擊發布按鈕使用ajax請求訪問服務器修改數據庫中字段,修改完成後使用Js方法修改table中對應的內容
在此記錄下Js的相關操作
$("#btnNotify").click(function(){
top.$.jBox.confirm("確認發佈交易確認單嗎?","系統提示",function(v,h,f){
var params=getUpdateStatusParams(notifyStatusPublish);
if(params.length==0){
$.jBox("您沒有選擇任何內容!");
return;
}
console.log(params);
$.ajax({
url: "${ctx}/xx/x",
data: JSON.stringify(params),
type: "POST",
dataType: "json",
contentType: 'application/json;charset=UTF-8',
success: function(data){
updateStatusStr(notifyStatusPublishStr);
$.jBox("發佈成功");
},
error: function(data){
$.jBox("操作失敗")
}
})
},{buttonsFocus:1});
top.$('.jbox-body .jboico').css('top','55px');
});
//json拼裝
function getUpdateStatusParams(status){
var params=[];
for(var i=0;i<document.getElementsByNames('ids').length;i++){
if(document.getElementsByName('ids')[i].checked){
var no=document.getElementsByName('taserialnos')[i].value;
params.push({taSerialNo:no,notifyStatus:status});
}
}
return params;
}
//js修改頁面
function updateStatusStr(str){
for(var i=0;i<document.getElementsByNames('ids').length;i++){
if(document.getElementsByName('ids')[i].checked){
document.getElementById("contentTable").rows[i+1].cells[9].innerHTML=str;
}
}
}
//全選按鈕
//全選父節點又.classname的class的input
$('#selectAll').click(function(){
$('.classname input[type=checkbox]').prop('checked',$(this).prop('checked'));
});
html
<th>全選<input type="checkbox" id="selectAll"></th>
<td>
<c:if test="${ not empty ackTransConfirm.transactiondate}">
<input type="checkbox" name="ids" class="ck" id="check" value="${ackTransConfirm.investorname;...}"
</c:if>
<input type="hidden" name="taserialnos" value="${ackTransConfirm.taSerialNo}"/>
</td>
運行時報錯415與400
data = JSON.stringify(data); 解決400錯誤
contentType:’application/json;charset=UTF-8’解決415錯誤