Этот javascript-код запускается без проблем в chrome и IE, но у него есть проблема в firefox, мне нужно знать, что неправильно?
<script>
function checkGurantee() {
var gurantee = document.getElementById('gurantee_no').value;
if (gurantee === '') {
document.getElementById('info').innerHTML = '';
return;
}
var params = "gurantee_no=" + gurantee;
request = new ajaxRequest();
request.open("POST", "check_gurantee.php", true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.setRequestHeader("Content-length", params.length);
request.setRequestHeader("Connection", "close");
request.onreadystatechange = function() {
if (this.readyState === 4) {
if (this.status === 200) {
if (this.responseText != null) {
document.getElementById('info').innerHTML = this.responseText;
}
else alert("Ajax error: No data received");
}
else alert( "Ajax error: " + this.statusText);
}
}
request.send(params);
}
function ajaxRequest() {
try{
var request = new XMLHttpRequest();
}
catch(e1) {
try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e2) {
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e3) {
request = false;
}
}
}
return request;
}
</script>
И это часть HTML:
<section class="form">
<form action="javascript:void()" method="POST" class="formstyle1">
<label for="gurantee">لطفاً شماره گارانتی را وارد نمایید:</label><br />
<input type="text" name="gurantee_no" id="gurantee_no" class="textfield" />
<input type="button" value="جستجو" class="btn" onClick="checkGurantee()" />
<span id='info'></span>
</form>
</section>
если ваша проверка неверна, это должно быть
if (gurantee == '')
{
document.getElementById('info').innerHTML = ''
return
}
Я думаю, что было бы проще использовать jQuery для этой цели... С jQuery ваш код будет выглядеть так:
<script type="text/javascript">
$(function() {
$('form').bind('submit', function(event) {
var form = $(this),
data = form.serializeArray();
$.post(form.attr('action'), data, function(request) {
$('#info').html(request);
});
return false;
});
});
</script>
И ваш section
:
<section class="form">
<form action="check_gurantee.php" class="formstyle1">
<label for="gurantee">لطفاً شماره گارانتی را وارد نمایید:</label><br />
<input type="text" name="gurantee_no" class="textfield" />
<input type="submit" value="جستجو" class="btn" />
<span id='info'></span>
</form>
</section>
Этот код нуждается в какой-то большой любви. У вас нет одной половины двоеточия во всем блоке вставки, и парсер JavaScript автоматически добавляет их в конец строк, а это означает, что каждая строка, которая не имеет открывающей скобки (ни одна из них), не будет прекращена.
:)
Ваш код синтаксически неверен.
;
), что означает, что вы получите неожиданные результаты. Вы должны добавить полуточку в конце каждой строки в JavaScript.==
) используйте оператор Identity/strict (т. ===
), чтобы избежать преобразования типов в сравнении.Исправьте эти ошибки перед продолжением.
params = "
должен стать var params = "
.