2
我有一個帶有CSS提交按鈕的表單。當點擊提交按鈕,我調用執行的函數:表單在Chrome/FF中正確提交,但在IE/Safari中完全失敗
document.forms["request"].onsubmit();
應該發生什麼,然後,是該方法的onsubmit應該被觸發。這可以在Chrome/FF中正常運行,但由於某些原因,IE/Safari將繞過onsubmit函數,並簡單地將參數「address =」添加到url上,就像它提交表單並忽略onsubmit函數一樣。繼承人的形式代碼:
<form id="request" method="get" onsubmit="addLocation(this.address.value); return false;">
<br>
<label style="position:relative;left:5px;" for="address">Enter an intersection or address:
</label>
<br>
<br>
<input style="height:35px; width:300px;position:relative;bottom:1px;left:10px;" id="address" name="address" class="required address"/>
<a style="float:right;right:120px;position:relative;" class="button" onclick="submit();">
<span>Submit Request
</span>
</a>
</form>
和接踵而來的是一些相關的JS功能:
function addLocation(address) {
if (geocoder) {
geocoder.getLocations(address, function (point) {
if (!point) {
alert(address + " not found");
} else {
if (point.Placemark[0].address != submittedString) {
submittedString = point.Placemark[0].address;
addRow(point.Placemark[0].address);
req = "addrequest?truck=" + "coolhaus&address=" + point.Placemark[0].address;
alert(req);
addRequest(req);
request.onreadystatechange = function() {}
}
}
});
}
}
function addRequest(req) {
try {
request = new XMLHttpRequest();
} catch (e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("XMLHttpRequest error: " + e);
}
}
request.open("GET", req, true);
request.send(null);
return request;
}
你可以在這裏測試形式:
http://la.truxmap.com/request?id=grillmastersla
非常感謝!
奇怪的是,構建在相同引擎上的Chrome和Safari的行爲會有所不同。 – Duncan 2010-04-12 05:30:32