2016-07-13 132 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]-->