Javascript 表单在Internet Explorer中不工作,但在其他浏览器中工作
出于某种原因,我的表单在除Internet Explorer之外的所有浏览器中都能正常工作 这是HTML:这是我以外的人设计的Javascript 表单在Internet Explorer中不工作,但在其他浏览器中工作,javascript,html,Javascript,Html,出于某种原因,我的表单在除Internet Explorer之外的所有浏览器中都能正常工作 这是HTML:这是我以外的人设计的 <label for="name">Name:</label><br /> <input name="name" type="text" /><br /> <label for="address">Address:</label><br />
<label for="name">Name:</label><br />
<input name="name" type="text" /><br />
<label for="address">Address:</label><br />
<input name="address" type="text" /><br />
<label for="phone">Phone:</label><br />
<input name="phone" type="text" /><br />
<label for="email">Email:</label><br />
<input name="email" type="text" /><br />
<input class="button" name="submit" style="margin-top:10px;" type="button" value="Join Club" /></div>
名称:
地址:
电话:
电子邮件:
下面是JavaScript:这是由我以外的人设计的
<script type="text/javascript">
///////////////////////////////////////////////ARRAY DUMP FUNCTION
function dump(a,b){var c="";if(!b)b=0;var d="";for(var e=0;e<b+1;e++)d+=" ";if(typeof a=="object"){for(var f in a){var g=a[f];if(typeof g=="object"){c+=d+"'"+f+"' ...\n";c+=dump(g,b+1)}else{c+=d+"'"+f+"' => \""+g+'"\n'}}}else{c="===>"+a+"<===("+typeof a+")"}return c}
/////////////////////////////////////////////
$(document).ready( function() {
$('.clubregister input[name="submit"]').click( function(event) {
event.preventDefault();
/*alert('This section is under construction, please contact us to get set up!\n Sorry for the inconvenience');return false;*/
//CREATE ARRAY FROM FORM DATA SERIALIZED
var $formData = $('.clubregister input[type="text"], .clubregister textarea').serializeArray();
//PUSH ACTION TO ARRAY
$formData.push({'name':'action','value':'registerForClub'});
//SEND DATA TO HANDLER
$.ajax({
url:'http://torkliftcentralrv.com/club_register_handle.php',
dataType:'json',
async:false,
data:$formData,
success: function(data) {
//console.log(dump(data));
//CREATE MESSAGE
var message = '';
var consolemessage = '';
//IF ERRORS
if(typeof data['error'] !== 'undefined') {
//APPEND ERRORS TO MESSAGE
$.each( data['error'], function( index,data) {
message += (data + "\n");
});
}
//IF MESSAGES
if(typeof data['message'] !== 'undefined') {
//APPEND MESSAGES TO MESSAGE
$.each( data['message'], function( index,data) {
message += (data + "\n");
});
}
//IF CONSOLE MESSAGES
if(typeof data['console'] !== 'undefined') {
//APPEND CONSOLE MESSAGES TO MESSAGE
$.each( data['console'], function( index,data) {
consolemessage += (data + "\n");
});
}
//IF SUCCESS SENT FROM SERVER
if(typeof data['success'] !== 'undefined') {
//CLEAR FORM
$('.clubregister input[type="text"], .clubregister textarea').val('');
}
alert(message);
console.log(consolemessage);
}
});
});
});
///////////////////////////////////////////////数组转储函数
函数dump(a,b){var c=“”;if(!b)b=0;var d=“”;for(var e=0;e您正在尝试执行跨域Ajax请求。IE8和IE9支持跨域请求,但它们使用自定义API,XDomainRequest
,该API具有
也就是说,链接文档中的#4:“请求的内容类型
标题只支持文本/普通
”。您请求的是JSON,但无法使用XDomainRequest
发送内容类型:text/JSON
尝试删除数据类型:'json'
行,并将数据=$.parseJSON(数据)
添加到成功处理程序的第一行。删除该行:
console.log(控制台消息);
IE无法处理此问题,并将导致您出现问题。什么位不起作用?IE是否在调试控制台(f12)中包含任何错误消息?该按钮不会提交数据。它什么也不做。请尝试firefox的firebug javascript控制台,或Chrome开发工具中的控制台(或类似工具)对于任何JS错误消息。很可能在某处JS出错,这可能是因为缺少撇号或AJAX。哪个版本有时我注意到当你有console.log语句但没有控制台时,IE会抛出随机的Javascript错误。也许这就是发生在你身上的事情?不幸的是,这没有起作用。我尝试了这个,现在我的代码看起来是这样的:'//如果成功从服务器发送数据=$.parseJSON(数据)如果(数据类型['SUCCESS']!='undefined'){//CLEAR FORM$('.clubregister input[type=“text”],.clubregister textarea').val('');“当使用这些编辑时,表单损坏了。@jukebox535不,我是说在$.ajax
success
函数的顶部。在/console.log(dump(data));
之前和success:function之后添加它(数据){
Ok cool,当我这样做时,表单在Chrome中的工作方式应该是一样的,但在IE 9中的结果是一样的。还有,最近的开发。当我在IE 9中打开控制台并刷新时,它神奇地重新开始工作。修复了!用java脚本制作了一个虚拟控制台