0

如何查找响应是否包含元素形式

    $.ajax({
        url     : $(this).attr('action'),
        type    : 'POST',
        success : function(response){
            if($(response).find('form').length)
            {
                alert("hii");
            }
        }
    });

表单可能是响应的最顶层元素或中间某处

4

4 回答 4

2
$.ajax({
        url     : $(this).attr('action'),
        type    : 'POST',
        dataType: 'html', // you should set it 
                          //  if you response send html only
        success : function(response){
            if($(response).filter('form').length)
            {
                alert("hii");
            }
        }
    });

根据更新:

        ....
        dataType: 'html',
        success : function(response){
            var container = $('<div/>').append(response);
            if($(container).find('form').length)
            {
                alert("hii");
            }
        }
于 2012-06-01T14:41:12.703 回答
0
$.ajax({
    url     : $(this).attr('action'),
    type    : 'POST',
    success : function(response){
        var hasForm = $("<div></div>").append(response).find("form").length > 0;
        if(hasForm)
        {
            alert("hi");
        }
    }
});
于 2012-06-01T14:46:23.793 回答
0

dataType : 'html' 强制 jQuery 将响应视为简单的 html。我正在使用“has”功能,它将匹配的元素集减少到仅包含其中某处的表单的元素。

 $.ajax({
        url     : $(this).attr('action'),
        type    : 'POST',
        dataType : 'HTML',
        success : function(response){
           $(response).has('form').doMoreWorkHere();
        }
    });

或者,你可以写得更短

$.post($(this).attr('action'), {}
       function(response){
         $(response).has('form').doMoreWorkHere();
       }, 'html');
于 2012-06-01T14:53:09.537 回答
-1

“回应”从何而来?它是什么格式?

我以 json 格式发送返回的变量:

success: function(msg){
    var obj = jQuery.parseJSON( msg ); 
    alert( obj.VARNAMEHERE );
}

或者您可以只检查整个响应而不是特定变量。这将使您了解如何遍历结果以找到您要查找的内容。

于 2012-06-01T14:46:10.063 回答