2016-07-13 127 views
0

enter image description hereprop()和attr()在IE11中不工作

[由其他人开发]研究bug。最初,月份选取器输入字段将被禁用,直到您在左侧输入中输入一个值。它适用于Chrome和其他浏览器,但不适用于IE11。

<div class="col-xs-12 col-sm-2 col-md-2"> 
    <h5 class="control-label subaccount-view" data-bind="text: ProfileViewModel.userProfile().GATarget"></h5> 
    <input type="text" id="txtGATarget" class="subaccount-edit txt-gatarget txt-contolrs cls-validate-txt" style="display:none"> 
    <span class="text-danger" id="gaTargetVal" style="display:none">@T("subaccount-emptygatarget")</span> 
</div> 
<div class="col-xs-12 col-sm-3 col-md-2 cls-addinfo-history"> 
    <div class="input-dp-wrap"> 
    <input type="text" class="month_year" id="effectiveDateFrom_GA" disabled="disabled" /> 
    <span class="text-danger" id="ga_DateVal" style="display:none">@T("subaccount-month-invalidselect")</span> 
    </div> 
</div> 

JS -

$('.txt-gatarget').change(function() { 
    var gatarget = $(this).val(); 
    $('#gaTargetVal').css("display", "none"); 
    if (gatarget == "") { 
     var errMsg = @Html.Raw(Json.Encode(T("subaccount-emptygatarget"))); 
     $('#gaTargetVal').html(errMsg.Text) ; 
     $('#gaTargetVal').css("display", "block"); 
     $('#submitAdditionalInfo').attr('disabled', true); 
     $('.btn-saveedit').attr('disabled', true); 
    } 
    else if(gatarget.indexOf(".") >= 0) 
    { 
     var errMsg = @Html.Raw(Json.Encode(T("subaccount-invalidgatarget"))); 
     $('#gaTargetVal').html(errMsg.Text) ; 
     $('#gaTargetVal').css("display", "block"); 
     $('#submitAdditionalInfo').attr('disabled', true); 
     $('.btn-saveedit').attr('disabled', true); 
    } 
    else { 
     var isAllowed = EnableButton(); 
     if(!isAllowed) 
     { 
      $('#submitAdditionalInfo').attr('disabled', true); 
      $('.btn-saveedit').attr('disabled', true); 
     } 
     $('#effectiveDateFrom_GA').prop('disabled', false) ; 
    } 
}); 

的jQuery正在使用的版本是1.11.0,如果你问。

+0

使用'prop()'。现在,如果它仍然不起作用,请提供复制问题的简约示例。 –

+0

@ A.沃尔夫 - 我发现了这个问题。检查我的答案。 –

回答

0

我发现了这个问题。事件没有在.change上触发。我用密码键代替。有效。 $('.txt-gatarget').keyup(function() {

+0

这有不同的行为。我不知道你的预期行为是什么... –

+0

@ A.Wolff - 检查附加的图像。就像我说的那样,月份选取器输入字段将被禁用,直到您在左侧输入中输入一个值。一旦您在左侧输入中输入一个值,月份选择器输入将被启用。 –

+0

但像我说的改变事件有不同的行为。一旦元素失去焦点,它就会被触发,而不是键控事件。如果你用户传递一些值使用鼠标(上下文菜单)怎么办?你的keyup事件不会被解雇 –

0

尝试添加以下内容到页面的头部标记

<!--[if IE 8]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> 
    <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->