//再次验证手机号码 格式是否正确
var reg = /^1[3|5|4|8|7|][0-9]\d{8}$/;
var r = phone.match(reg);
if (r == null) {
layer.open({
content: '手机号码格式不正确'
,skin: 'msg'
,time: 3 //2秒后自动关闭
});
return false; //第一个return false是有效的
}
//再次验证手机号码是否已经存在
$.post("__MODULE__/Login/ajaxCheckPhoneIsExist",{phone:phone},function(data,status){
if(data=="手机号码已被注册"){
layer.open({
content: '该手机号码已经存在'
,skin: 'msg'
,time: 3 //2秒后自动关闭
});
return false; //第2个return false无效
}
});
alert("11111");
//Pemulangan pertama palsu adalah sah
//Pemulangan kedua palsu adalah tidak sah
Apa sebabnya
Yang pertama
Kaedahreturn false
soalan dipanggil serentak, jadi kesannya dapat dilihat;$.post
dilaksanakan secara tidak segerak, jadi apabila$.post
方法是异步执行的,因此在$.post
方法的回调函数里面return false
的时候,其实是生效了的,但是在执行这句代码的时候,$.post
外面的代码早就执行完成了,所以看不到效果而已。另外,在回调函数里面加这句代码并没有什么意义,因为即使是return
,也是退出当前执行的函数,即$.post
的回调函数,并不能阻止$.post
berada di dalam fungsi panggil balik kaedah$.post
, ia sebenarnya berkuat kuasa, tetapi apabila melaksanakan kod ini Apabila , kod di luar$.post
telah pun dilaksanakan, jadi kesannya tidak kelihatan. Di samping itu, menambah kod ini pada fungsi panggil balik tidak masuk akal, kerana walaupunreturn
keluar dari fungsi yang sedang dilaksanakan, iaitu, fungsi panggil balik$.post
, dan Pelaksanaan kod di luar$.post
tidak boleh dihalang.Jika ada kod yang perlu diletakkan
$.post
请求成功之后执行的,那就把代码放到$.post
方法的回调函数里面去吧。例如题主如果本意想让alert('1111')
在请求成功后通过条件判断执行,那可以alert('11111')
dalam fungsi panggil balik kaedah $.post;Biar saya terangkan segerak dan tak segerak kepada subjek di sini Contohnya, contohnya, subjek sedang menulis kod dan berasa dahaga, jadi dia pergi mendidih air untuk minum. Dalam proses ini, subjek adalah bersamaan dengan kod penulisan ialah perkara yang sedang dijalankan oleh subjek Apabila dia berasa dahaga, dia akan mengambil air dan meletakkannya di sana untuk menulis kod. Dia hanya perlu tunggu sehingga air Setelah masak, baru keluarkan dan minum sendiri. Kod subjek adalah sama.
Selain itu, saya mendapati bahawa ungkapan biasa soalan boleh dioptimumkan, saya secara peribadi berpendapat ia boleh ditulis sebagai$.post
就发送一个请求,请求的过程中外部的js还是继续执行(并没有等待$.post
请求返回结果),等到ajax请求返回了,再回调之前定义的回调函数。这里除了$.post
/^1[34578]d{9}$/g
return mengembalikan fungsi semasa anda adalah relatif kepada fungsi panggil balik acara klik, dan yang kedua adalah relatif kepada fungsi panggil balik permintaan ajax, ia tidak akan menghalang panggilan balik fungsi luar
Fungsi dalam pos ialah fungsi tak segerak dan hanya akan dipanggil selepas permintaan berjaya Sebelum permintaan kembali berjaya, kod akan terus dilaksanakan. Jadi kenyataan palsu kembali adalah tidak sah. Penyelesaiannya ialah meletakkan return false di luar fungsi tak segerak, bukan dalam fungsi tak segerak $.post().
$.post
是异步执行的,需要使用$.ajax
并设置async: false
。Letakkannya pada tahap yang sama dengan alert(1111)