这个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>
答案 0 :(得分:1)
你的检查不正确应该是
if (gurantee == '')
{
document.getElementById('info').innerHTML = ''
return
}
答案 1 :(得分:0)
您的代码在语法上是不正确的。
;
),这意味着您将获得意外结果。您应该在JavaScript的每一行末尾添加一个分号。 ==
)运算符代替相等运算符(即===
),以避免在比较中进行类型转换。在继续之前修复这些错误。
答案 2 :(得分:0)
我认为为此目的使用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>
答案 3 :(得分:0)
这段代码需要一些重要的爱。您的整个粘贴块中没有单个分号,并且JavaScript解析器会自动将这些分号添加到行尾,这意味着每个没有左括号的行(没有一行)将被终止。 / p>
:)