在Ajax调用之后,JQuery替换不起作用

时间:2014-02-07 17:49:58

标签: javascript jquery ajax

我正在进行AJAX调用,一旦得到响应,我想用标签替换提交按钮......但这不起作用。我得到警告信息即;来自Ajax调用的响应但是replacewith命令失败。

你能告诉我我做的错误是什么..

替换命令

$( this ).closest( 'tr' ).find( 'input:label' ).replaceWith("<label for=\'success\'>SUCCESS</label>");

代码:

$("#table_appl,#table_enfr,#table_det01,#table_det02,#table_det03,#table_det04,#table_det05,#table_datais").on( "click", "input:submit", function( event ) {
    //alert('Hi')
    //event.preventDefault();
    var fieldvalue = $(this).closest('tr').find('input:text').val();
    var fieldname = $(this).closest('tr').find('input:text').attr('name');
    alert('fieldname = ' + fieldname)
    alert('fieldvalue = ' + fieldvalue)
      $.ajax({

            type:"GET",

            url:"/validate/",
            data:{'fieldvalue':fieldvalue,'fieldname':fieldname},
            success:function(data){
                if (data == 'Y'){
                    var item  = $(this).closest('tr').find('input:label')
                    alert("Gonna be replaced" + item);
                    $( this ).closest( 'tr' ).find( 'input:label' );
                    $( this ).closest( 'tr' ).find( 'input:label' ).replaceWith("<label for=\'success\'>SUCCESS</label>");


                }
                alert("Response = "+ data);
            }

       });

    return false;


})

1 个答案:

答案 0 :(得分:0)

这是fiddle

这是代码:

<form role="form" method="POST" action="/validate/" id="input_form">
    <input id="myInput">
    <button type="submit" id="submitButton">Click me!</button>
</form>

使用脚本:

$("#submitButton").click(function () {
    event.preventDefault();
    $.get("/validate/", function (d){    
        if (d == "Y"){        
            $("#submitButton").replaceWith("<label>SUCCESS</label>");
        }                    
    })
})

这是关于你想要的吗?我想你必须调整.replaceWith()部分来找到正确的元素......