Javascript 表单提交浏览器可战斗性
我对编程相当陌生。我使用以下代码提交表单:Javascript 表单提交浏览器可战斗性,javascript,jquery,ajax,Javascript,Jquery,Ajax,我对编程相当陌生。我使用以下代码提交表单: <form action="" method="post" class="label" id="form1"> <span id="sprytextfield1"> <label>Ονομα* <br /> <input name="onoma" type="text" id="onoma" size="30" /> </l
<form action="" method="post" class="label" id="form1">
<span id="sprytextfield1">
<label>Ονομα*
<br />
<input name="onoma" type="text" id="onoma" size="30" />
</label>
<span class="textfieldRequiredMsg"></span></span>
<p><span id="sprytextfield2">
<label>Επίθετο*
<br />
<input name="surname" type="text" id="epitheto" size="30" />
</label>
<span class="textfieldRequiredMsg"></span></span></p>
<p><span id="sprytextfield3">
<label>Τηλέφωνο*<br />
<input name="phone" type="text" id="tilefono" size="25" />
<span class="textfieldRequiredMsg"> </span></label>
</span></p>
<p><span id="sprytextfield4">
<label>email*<br />
<input name="email" type="text" id="email" size="30" />
</label>
<span class="textfieldRequiredMsg"></span></span></p>
<p><span id="sprytextfield5">
<label>username*
<br />
<input name="username" type="text" id="username" size="30" />
</label>
<span class="textfieldRequiredMsg"></span></span></p>
<p><span id="sprypassword1">
<label>password*<br />
<input type="password" name="password" id="password" />
</label>
<span class="passwordRequiredMsg"></span></span></p>
<p>
<label>Εδρα-Νομός*
<select name="Edra_nomos" size="1" id="edranomos">
<option value=" Επιλογές"> Επιλογές</option>
.........................................................
</select>
</label>
</p>
<p>
<label>Εδρα-Πόλη*
<select name="Edra-Poli" id="edrapoli">
</select>
</label>
<script>
$(document).ready(function(){
$('#edranomos').change(function(){
$('#edrapoli').empty();
var option = '';
var edra = [
.................................................................
];
var s = $( "#edranomos option:selected" ).text().trim();
for(n=0;n<edra.length;n++){
if(s==edra[n][0]){
for(i=1;i<edra[n].length;i++){
option += '<option value="'+ edra[n][i] + '">' + edra[n][i] + '</option>';
}
$('#edrapoli').append(option);
}
}
});
});
</script></p>
<p>
<label>Είδος Μεταφοράς*
<select name="Eidos_metaforas" size="1" id="eidosmetaforas">
...........................................................
</select>
</label>
</p>
<label>Υπηρεσίες*
<select name="ypiresies" size="3" multiple="multiple" id="exeidikypiresies">
.....................................................
</select>
</label>
<p><br />
</p>
<p>
<input name="Submit" type="submit" id="button" value="Εγγραφή" />
</p>
</form>
<p> </p>
<script>
$(document).ready(function(){
$("#form1").submit(function() {
alert($('#onoma').val());
alert($('#epitheto').val());
alert($('#email').val());
alert($('#tilefono').val());
alert($('#username').val());
alert($('#password').val());
alert($('#edranomos').val());
alert($('#edrapoli').val());
alert($('#eidosmetaforas').val());
if($('#exeidikypiresies').val()!=null){
var e = $('#exeidikypiresies').val().toString();
} else {
var e = 'nothing';
}
alert(e);
$.ajax({
url: 'php/register.php',
type: 'POST',
data: { onoma:$('#onoma').val() , epitheto:$('#epitheto').val() ,
email:$('#email').val() , tilefono:$('#tilefono').val(),
username:$('#username').val() , password:$('#password').val() ,
edranomos:$('#edranomos').val() , edrapoli:$('#edrapoli').val(),
eidosmetaforas:$('#eidosmetaforas').val() , exeidikypiresies:e},
dataType: 'json',
success: function(response){
alert(response['message']);
if(response['success']=='1'){
window.location = 'http://www.transergo.com/index.php';
}
}
});
});
});
</script>
我的问题是,代码不适用于firefox,我甚至不能将数据存储到数据库中,有一半适用于chrome,响应时不显示警告框,它与IE完美配合,所以这显然是一个浏览器兼容性问题。我不知道该找什么。通过谷歌搜索没有发现任何具体的信息。任何想法
我更新了代码我在您的页面中看不到HTML,但我认为这是因为您在尝试发布表单时正在进行AJAX调用。这是一个问题,因为$.ajax是异步的,所以在从$.ajax调用返回结果之前,您的页面可能正在重新加载/导航。在ajax调用之后添加下面的return语句,这样就不会发生表单直接提交
return false;
此外,最好避免调试时使用警报语句。
您可以在控制台中使用
console.log("test");
控制台中的错误是什么?简单地说,使用firefox它返回我的页面html代码尝试序列化表单,然后发布数据。喜欢数据:$'form1'。您是否建议不要使用AJAX;我使用它依赖于几个堆栈溢出主题。我不确定你想用AJAX调用做什么,如果不查看整个页面就很难了解你在做什么。如果您需要首先进行AJAX调用,也许您应该使用一个函数来进行AJAX调用,并在成功时提交表单,而不是在提交事件中进行调用。我更新了我的代码您正在通过submit按钮发布表单,一旦ajax调用发出,它就不会等待,因为它是异步的,所以在ajax调用返回之前页面会被刷新。为什么不将表单发布到php/register.php中呢?添加returnfalse将导致成功。谢谢jeevanragula