jqueryに新しいImが出ました。このページはFirefoxとChromeで完璧に機能しますが、IE8のbeforeSend関数では、私が何をしても「すべてのフィールドが必要です」と表示されます。誰かがいつもこの機能を失敗させるためにIEがしていることを私に指摘できますか?ありがとう。JQuery AJAX beforeSend関数が失敗しましたIE 8
<html>
<head>
<title>Contact form</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="../css/modal_company.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../js/jquery-1.7.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])]
= decodeURIComponent(tokens[2]);
}
return params;
}
var $_GET = getQueryParams(document.location.search);
var holy = $_GET["strUser"]
document.getElementById('hide').value = holy;
$('#submit_button').click(function() {
$.ajax({
type: 'POST',
url: 'item_add.php',
data: $('form').serialize(),
dataType: 'json',
beforeSend: function() {
var item_num = $('#item_num').val();
var descript = $('#descript').val();
var quanti = $('#quanti').val();
var fdaa = $('#fdaa').val();
if (!item_num[0] || !descript[0] || !quanti[0] || !fdaa[0]) {
$('#output').html('All fields are required');
return false;
}
},
success: function(response) {
if (response.status == 'success') {
$('#formcont').html();
}
$('#output').html(response.errmessage);
}
});
});
});
</script>
</head>
<body>
<div id="formcont" style="text-align:center; margin:0; padding:0; height:100%;">
<form id="myform">
<fieldset>
<div style="text-align:center; margin-bottom:20px; border-bottom:thin #000; width:100%;">
<h2>Add an Item</h2>
</div>
<p>
<label for="hide"><strong>Manufacturer:</strong></label>
<input type="text" readonly name="hide" id="hide" size="30" value="" style="background-color:#CCC" />
</p>
<p>
<label for="item_num"><strong>Item/Catalog #:</strong></label>
<input type="text" name="item_num" id="item_num" size="30" />
</p>
<p>
<label for="descript"><strong>Description:</strong></label>
<input type="text" name="descript" id="descript" size="30" />
</p>
<p>
<label for="quanti"><strong>Quantity Per Unit:</strong></label>
<input type="text" name="quanti" id="quanti" size="30" />
</p>
<p>
<label for="fdaa"><strong>Is this Item FDA Approved?</strong></label>
<input type="text" name="fdaa" id="fdaa" size="30" />
</p>
</fieldset>
<div id="output" style="width:100%; color:red; text-align:center;"></div>
<div style="text-align:center; margin-bottom:0px; border-bottom:thin #000; width:100%; margin-left:105px;">
<p style="text-align:center;">
<input type="button" value="Submit" id="submit_button" />
</p>
</div>
</form>
</div>
<div id="output"></div>
</body>
</html>
注:この機能を削除すると、すべてIEでうまく機能します。それはデータベースに提出し、私が探している成功メッセージを私に与えます。この機能について何がわからないのか。
文字列で '[0]'を実行する目的は何ですか?例えばIE7でもサポートされていません。 – Esailija
私が作業していた元のコードの中にあったので、それは私がそれに触れなかったので機能しました。それが問題だろうか? FirefoxとChromeで正常に動作します。 –
'!item_num || !descript || !quanti || !fdaa' ...あなたのie8のバージョンが文字列の添字表記をサポートしていないことに感銘しました:P(私はしますがIE9互換モードで動作しています)コードは事実上同じです - if条件を渡しますifいずれの変数も空の文字列でした。 – Esailija