1、前陣子在做系統的h5+ app為滿足手機端也能進行業務操作,例如:提貨,掃描入庫之類的。所以就要將做接口,從手機端調用后台系統的方法。
2、例如這樣的請求格式,但是呢,每次請求它都直接跳到error,剛開始還以為是網絡問題,就連上wifi試了試,發現還是直接跳error。然后就開始懷疑請求格式了。。。
如下:
function openScan(data) {
mui.ajax(OPENSCAN, {
data: data,
dataType: 'json',
type: 'post',
timeout: 10000,
headers: {
'Content-Type': 'application/json',
'accessToken': localStorage.getItem('accessToken')
},
success: function(result) {
JQ("#prompt1").html("");
},
error: function(xhr, type, errorThrown) {
app.ajaxError(xhr, type, errorThrown);
}
});
}
3、其實是正確的格式。。。最后突然想起來,tm。。。原來只有一個文本框,這時候已經是1個多小時后了。
4、所以一個文本框時會出現bug,歷史由來已久,想了解問度娘。
5、所以順便說說一個文本框bug解決的方法。
a.最簡單就是直接多加一個文本框,然后進行隱藏。
如下:
<form class="mui-input-group"> <div class="mui-input-row"> <label style="font-size: 90%;">掃描條碼:</label> <input type="text" class="mui-input-clear" placeholder="請輸入條碼" id="trackingNo" value="" style="color: blue"> </div> <div class="mui-input-row" style=" display: none;"> //格式隨意,只要不是一個文本框,就沒有問題了 <input type="text" class="mui-input-clear" placeholder="隱藏" id="trackingNo1" value=""> </div> </form>
b. 使用preventDefault()方法,preventDefault() 方法阻止元素發生默認的行為(例如,當點擊提交按鈕時阻止對表單的提交)。
如下:
doc.querySelector('#trackingNo').addEventListener('keydown', function(e) {
e.preventDefault();
if(e.keyIdentifier == "Enter") {
var trackingNo = JQ('#trackingNo').val();
if(trackingNo == null || trackingNo == '') {
alert("掃描條碼不能為空!");
return;
}
openScan(trackingNo);
}
});
后記:轉發請注明出處:https://www.cnblogs.com/lrj1009IRET/p/9998142.html
