0

我有 ajaxsubmit 方法,它以下列方式定义

var new_options = {
            dataType: 'json', 
            beforeSubmit: function() {
              alert('inside before submit');
              $(".available_script_arguments").each(function(index) {
                argument_id = $(this).val()
                $("td#argument_"+argument_id).addClass("resource_automation_loader");
               });                 
            },
            success: function(data) {
              alert('inside success');
              $(".available_script_arguments").each(function(index) {                    
                argument_id = $(this).val()
                $("td#argument_"+argument_id).removeClass("resource_automation_loader");
                $("td#argument_"+argument_id).html(data[argument_id]).html(); 
                $("td#argument_"+argument_id).html("<span></span>");
                updateTargetArgumentId();
                triggerAdapterResourceAutomation();
              });
            },
            error: function(jqXHR, textStatus, errorThrown){
              alert('inside error');
             $(".resource_automation_loader").each(function(){
                // This will hide the loader
                $(this).removeClass("resource_automation_loader");
                // This will display text N.A indicating the resource automation has failed
                $(this).html("<input type='text' value='' placeholder='N.A'></input>");
             });
            }
          };
          $("form#update_resource_automation_parameters").ajaxSubmit(new_options);

此功能在 Firefox 中可以正常工作,但在 IE7 中无法正常工作。

我找到了原因,它与成功回调中使用的 jquery html 函数一起出现。

如成功回调数据以 html 形式出现(div 和 select 的组合)

在成功回调中检查数据后(如下所示)

<div >
<select arg_val="null">
<option value="">Select</option>
<option value="0">Corporate Strategic</option>
<option value="1">Business Unit Strategic</option>
<option value="2">Maintenance</option>
<option value="3">Defect</option>
</select>
</div>

所以这个数据基本上输出到视图中的选择列表,但这在 IE7 中不起作用。

让我知道是否有人对此有任何想法。

谢谢,院长。

4

2 回答 2

0

尝试使用append而不是html

于 2012-10-10T12:55:19.420 回答
0

在 rahul 的回答之后,您不断地通过 jquery 选择同一个对象。当您在 JQuery 中执行操作时,它将返回受影响的对象,从而允许您链接您的操作。

例如:

$("td#argument_"+argument_id).removeClass("resource_automation_loader");
$("td#argument_"+argument_id).html(data[argument_id]).html(); 
$("td#argument_"+argument_id).html("<span></span>");

可以变成:

$("td#argument_"+argument_id).removeClass("resource_automation_loader")
                             .append(data[argument_id])
                             .append("<span></span>");

它只选择一次对象。

于 2012-10-10T13:00:29.147 回答