使用jQuery更改Button ID

时间:2012-07-08 10:06:52

标签: jquery button

我有一个带有按钮的表单,其初始值为'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的数据,并且我将按钮值更改为Update,并将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");以上。我不明白发生了什么。

2 个答案:

答案 0 :(得分:1)

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

为了动态绑定事件,您需要使用.on()方法。请查看here了解更多详情。

编辑

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

$("#submitBtn").click(){
    if ($(this).hasClass('save')){
    //do save code
    }
    else{
      //do update code
    }
}

答案 1 :(得分:0)

alert("out");

正常工作。正如您在代码中使用它一样   $(function(){表示准备就绪。