2017-02-13 10 views
0

それぞれの値が同じ場合はbuttonが無効になりません。条件に基づいて条件が正しく動作しない場合は、

私は4つのテキストボックス、2つのテキストボックスを比較部門名、2つのテキストボックスはDepartment Activeと比較しています。プロダクション(departmentNameInputCurrentである:生産)、チェックボックスをクリックするかが非クリックすると、ボタンが良いタイプのものに "departmentNameInput"、例は

  • 作業

    $("#departmentIDInput, #departmentNameInput, #departmentActive").bind("keyup change", function() { 
     
        var departmentIDInput = $("#departmentIDInput").val(); 
     
        var departmentNameInput = $("#departmentNameInput").val(); 
     
        var departmentNameInputCurrent = $("#departmentNameInputCurrent").val(); 
     
        var departmentActive = $("#departmentActive").val(); 
     
        var departmentActiveVal = $("#departmentActiveVal").val(); 
     
        var departmentActiveValCurrent = $("#departmentActiveValCurrent").val(); 
     
    
     
        if (departmentNameInput != departmentNameInputCurrent) { 
     
        $("#btnUpdate").attr('disabled', false).removeClass('btn_inact').addClass('btn_act'); 
     
        } else { 
     
        $("#btnUpdate").attr('disabled', true).removeClass('btn_act').addClass('btn_inact'); 
     
        } 
     
    
     
        if (departmentActiveVal == departmentActiveValCurrent) { 
     
        $("#btnUpdate").attr('disabled', false).removeClass('btn_inact').addClass('btn_act'); 
     
        } else { 
     
        $("#btnUpdate").attr('disabled', true).removeClass('btn_act').addClass('btn_inact'); 
     
        } 
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <input type="text" id="departmentNameInput" name="departmentNameInput" maxlength="30" value="Production"/> 
     
    <input type="text" id="departmentNameInputCurrent" name="departmentNameInputCurrent" maxlength="30" value="Production"/> 
     
    
     
    <input type="text" name="departmentActiveVal" class="departmentActiveVal" id="departmentActiveVal" value="Y"/> 
     
    <input type="text" name="departmentActiveValCurrent" class="departmentActiveValCurrent" id="departmentActiveValCurrent" value="Y"/> 
     
    
     
    <input type="checkbox" class="departmentActive" id="departmentActive" /> 
     
    
     
    <input type="button" class="button turquoise" id="btnUpdate" value="Update" disabled/>

    1. ボタンが正常に機能していれば、無効になっています。しかし、 "departmentNameInputCurrent"と同じテキストを再び削除しようとすると、ボタンは無効になりません。

    誰でも知っていますか?

  • +0

    をあなたのHTMLサンプル。また、 'prop()'ではなく 'attr()'を使用してボタンの無効状態を設定します –

    答えて

    0

    2番目のif-conditionのために、各ボックスの値が同じ場合、ボタンは無効になりません。

    if (departmentActiveVal == departmentActiveValCurrent) { 
        $("#btnUpdate").attr('disabled', false).removeClass('btn_inact').addClass('btn_act'); 
        } 
    

    これが真と評価され、ボタンは次のような三元操作中にあなたの機能を簡素化しようとすることができ

    +0

    これを行うにはどんなトリックですか? –

    +0

    あなたは単純なif-if(departmentNameInput!= departmentNameInputCurrent && departmentActiveVal == departmentActiveValCurrent)を使うだけです。 – Janar

    0

    有効化されます:にはボタンはありません

    $("#departmentIDInput, #departmentNameInput, #departmentActive").bind("keyup change", function() { 
     
        var departmentIDInput = $("#departmentIDInput").val(); 
     
        var departmentNameInput = $("#departmentNameInput").val(); 
     
        var departmentNameInputCurrent = $("#departmentNameInputCurrent").val(); 
     
        var departmentActive = $("#departmentActive").val(); 
     
        var departmentActiveVal = $("#departmentActiveVal").val(); 
     
        var departmentActiveValCurrent = $("#departmentActiveValCurrent").val(); 
     
        var isNameEqual = departmentNameInput === departmentNameInputCurrent; 
     
        var isActiveValueEqual = departmentActiveVal === departmentActiveValCurrent; 
     
        var isDisabled = isNameEqual && isActiveValueEqual; 
     
    
     
        $("#btnUpdate").prop('disabled', isDisabled).removeClass('btn_inact').addClass('btn_act'); 
     
    });

    関連する問題