JQuery单击功能不能正常工作

时间:2015-08-18 12:47:55

标签: jquery click

我在运行Jquery点击功能时遇到了麻烦:

$("#eintragen_bauteil_neu").click(function() {  //soabld geklick 
        var fehler=0;
        var artikelnummer = $("#artikelnummer").val(); //eingegebene artikelnummer auslesen
        var kunde = $("#kunde").val(); // eingegebenen Kunden auslesen


        //generate array artikelnummern von kunde gewählt
         $.get("query_bauteile.php?kunde="+kunde, function(data){ //gibt 1001,1002,1003,1144 ... etc als tring zurueck
            bauteile_array = data.split(","); //string wird gesplittet durch (",")und zu array bauteile_array

    if (inArray(artikelnummer,bauteile_array) == -1) { 
        alert("alles ok"); 
        fehler = 0; //wenn Bauteilnummer nicht doppelt vergeben

        } 
    else {
        alert ("fehler"); 
        fehler = 1; //wenn Bauteilnummer doppelt vergeben

        }




     }); //fuction data //von get query_bauteile.php


     //Fehlerbehandlung
        alert(fehler);
     if (fehler == 1)  {                                                            
        $("#artikelnummererror").html("Bitte Artikelnummer NEU eingeben darf nicht doppelt vergeben werden<br />"); 
        $("#artikelnummererror").show( "fast" );} 


    //  if ($("#artikelnummererror").html()=="") {alert("kein Fehler"); }
    //  else {alert{"fehler die 2te");      



        //else {/*alert ('tosend');*/
        //$.post("send_bauteil.php",{               form_name: "bauteil_neu",
            //                          name: $("#name").val(),
                //                      useremail: $("#email").val(),
                    //                  web:  $("#web").val(),
                        //              questions:  $("#text").val()},
                            //function(data){
                                //$("#donediv").html(data); 
                                //}); //post
                //} //if errorar
                return false                }); //click 

// bauteil_neu_form发送结束

&#34;点击&#34;来自一个应该将新数据放入mysql数据库的表单。 但在发送之前我必须检查&#34; artikelnummer&#34;已设置或未设置 - 使用单击函数中的get函数执行此操作...

所以我想: 创建点击功能 - &gt;在那里从mysql数据库获取所有数据 使用脚本&#34; query_bauteile.php&#34;这给了我一些字符串,比如10001,10002,10003,10004等,然后将这个字符串设置成一个数组并检查输入的值是否为&#34; artikelnummer&#34;是否在数组中。 到目前为止,这一切都在发挥作用。

但是,如果我尝试检查脚本是否发送错误,并且根本没有发生错误检查。

我试图在我的网站中向我发送错误变量的实际值并看到它为零,之后它告诉我&#34; fehler&#34;如果我投入了一个&#34; artikelnummer&#34;已经存在。

所以我的问题是如何解决这个问题似乎脚本运行一次完全throgh然后检查get函数...进行错误检查。我现在缺少什么?

3 个答案:

答案 0 :(得分:0)

这是我给前一个问题的答案,这是一个不同的问题,但是同一个根:

<小时/> 请考虑以下代码:

console.log('First');
jQuery.get('page.html', function(data) {
  console.log("Second");
});
console.log('Third');

在此片段中,您的控制台将记录:First,Third,Second。

现在,如果我们要让它运行async:

console.log('First');
getPage("page.html, function(){
  console.log('Third');          
}


var getPage(url, callback) {
  jQuery.get(url, function(data) {
    console.log("Second ");
  }
  callback();
}

现在记录:第一,第二,第三

因此,它归结为javascript是一种异步语言,在等待ajax调用时,将其与其余代码连续完成。

您的变量fehler尚未填充ajax请求中的数据。 您应该在回调或成功处理程序中调整它

链接到原始帖子:here

答案 1 :(得分:0)

根据您的描述,我相信您可以使用:

$("#eintragen_bauteil_neu").on('click', function () {
    var fehler = 0;
    var artikelnummer = $("#artikelnummer").val();
    var kunde = $("#kunde").val();

    var jqxhr = $.get("query_bauteile.php?kunde=" + kunde)
    .done(function () {
        alert("success");
        bauteile_array = data.split(",");
        if (inArray(artikelnummer, bauteile_array) == -1) {
            alert("alles ok");
            fehler = 0;
        } else {
            alert("fehler");
            fehler = 1;
        }
    })
    .fail(function () {
        alert("error");
    })
    .always(function () {
        alert("finished");
        alert(fehler);
        if (fehler == 1) {
            $("#artikelnummererror").html("Bitte Artikelnummer NEU eingeben darf nicht doppelt vergeben werden<br />");
            $("#artikelnummererror").show("fast");
        }
    });
});

答案 2 :(得分:0)

你们都救了我的一天! 非常感谢,我必须更多地了解回调 - 我对此并不熟悉。 我使用了快速而又脏的

$ .ajaxSetup({async:false});让代码等待执行ajax调用并设置$ .ajaxSetup({async:true});&#34;

:) - 再次感谢,祝你有美好的一天! :)