我目前在我的一個應用程序中使用隱藏按鈕作爲解決Android數字鍵盤問題的表單。基本上,按下回車鍵或聚焦按鈕將提交表單。當使用回車鍵提交表單時,IE將焦點提交按鈕
按下輸入可以在Chrome(桌面),Firefox(桌面)和Safari(iOS)中使用,只提交一次表單。在IE中,瀏覽器提交表單兩次,所以我只能假定當用戶按下回車鍵時,它將重點提交按鈕。
下面是一個演示此示例的示例。在我測試過的Chrome和其他瀏覽器中,它只會清除該框。在IE中,它會提醒「數量無效」。
HTML:
<form data-bind="submit: SubmitQuantity">
Quantity:
<input id="quantity" type="number" data-bind="value: Quantity, valueUpdate: 'afterkeydown'"/>
<button type="submit" data-bind="event: { focus: SubmitQuantity }" class="hidden_button"></button>
</form>
CSS:
.hidden_button {
width: 0px;
height: 0px;
font-size: 0px;
border: 0px;
left: -9999px;
padding: 0px 0px 0px 0px;
}
JS:
var viewModel;
function ViewModel() {
var self = this;
self.Quantity = ko.observable('');
self.SubmitQuantity = function() {
if (isNaN(self.Quantity())) {
alert('Invalid quantity');
return;
}
self.Quantity(undefined);
};
}
viewModel = new ViewModel();
ko.applyBindings(viewModel);
有沒有辦法阻止IE做這種雙重提交是由聚焦隱藏領域造成的?
不知道這是否修復它,但沒有'按鈕類型= 「提交」'試着用'型=一個'input' 「提交」'。 – rgthree
有一個'button type =「submit」'。 http://www.w3schools.com/tags/att_button_type.asp – Nathan
確定有一個按鈕類型=「提交」https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button# attr-type –