0

我有一个带有一个按钮的表单,其初始值为'Submit',其 ID 由'submit1'它使用:

$( function(){
$("#submit1").click(function () {
    alert("i got ");
    var dname = $("#dname").attr('value');
    if(jQuery.trim(dname).length == 0){
        $("#dnametd").append("<span id='requiredsp' class='vanadium-advice vanadium-invalid'>Thissss is a required field.</span>");
        $("#dname").keyup(function () {
            $("#requiredsp").remove();
        });
    }
    else{
var dname = $("#dname").attr('value');
var symptons = $("#symptons").attr('value');
$.ajax({
                type: "POST",
                data: "method=" +"addDisease"+"&dname="+dname+"&symptons="+symptons+"&status="+"y",
                url:  "classes/disease_type.class.php",
                success: function(){
                gettables();
                    }
               }); 
        $("#newformreg").hide( { direction: "left" }, 1500);
        $("#dname").val('');
        $("#symptons").val('');
    }

    });
});

稍后我从服务器获取数据,并在上面的表单中获取这些数据,其中包含一个隐藏的 id 文本框,并且我将按钮值更改为更新,并将 id 更改为如下所示。

  function doEdit(id){
        $.ajax({
                type: "POST",
                data: "method=" +"getDisease"+"&did="+id,
                url:  "classes/disease_type.class.php",
                success: function(myVar){
                    $("#newformreg").show( { direction: "left" }, 1000);
                    arr3=myVar.split('%');
                    $('<input>').attr({type:'hidden',id:'did'}).appendTo("#insertForm");
                    $("#did").val(arr3[0]);
                    document.getElementById("dname").value=arr3[1];
                    //$("#dname").val(arr3[1]);
                    $("#symptons").val(arr3[2]);
                    $("#submit1").prop({id:'update',value:'Update'});
                    //document.getElementById("submit").value="Update";
                    //document.getElementById("submit").id="update";
                },
                }); 
                            }

            $( function() {
            $("#update").click(function () {
            var upvalue = $("#update").attr('value');
            alert("updateclick");
            alert(upvalue);
            var dnamee = document.getElementById("dname").value;

            if(jQuery.trim(dname).length == 0){
                $("#dnametd").append("<span id='requiredsp' class='vanadium-advice vanadium-invalid'>Thissss is a required field.</span>");
                $("#dname").keyup(function () {
                    $("#requiredsp").remove();
                });
            }
            else{
                alert("proper");
            var did = $("#did").attr('value');      
            var dname = $("#dname").attr('value');
            var symptons = $("#symptons").attr('value');

                $.ajax({
                type: "POST",
                data: "method=" +"updateDisease"+"&dname="+dname+"&symptons="+symptons+"&did="+did+"&doUpdate="+"edit",
                url:  "classes/disease_type.class.php",
                success: function(){
                    $("#msgdiv").addClass("msg success").add('<span>Record Updated Successfuly</span>');
                    }
               }); 
            }
        }); 
    alert("out");
           });

但即使在这样做之后,每当我点击更新时,它都会执行上述提交按钮的功能并且不会更新。此外,当我的页面打开时,它给了我上面alert("out");。我不明白发生了什么事。

4

2 回答 2

1

$("#update").click()用于绑定点击事件,但页面第一次加载时“更新”ID 不存在。

为了动态绑定事件,您需要使用该.on()方法。在这里查看更多细节。

编辑

你的代码写得不太好,我建议你给按钮一个 ID (#submitBtn) 并给它一个更新/保存类。然后你这样做:

$("#submitBtn").click(){
    if ($(this).hasClass('save')){
    //do save code
    }
    else{
      //do update code
    }
}
于 2012-07-08T10:13:00.063 回答
0
alert("out");

工作正常。当您在代码 $( function() {中使用它时,这意味着准备就绪。

于 2012-07-08T10:16:13.177 回答