2017-01-12 15 views
1

テキストフィールドとアンカータグフィールドがあります。キーアップイベントに基づくjqueryを使用したCSSスタイル挿入の切り替え

テキストフィールドが空でない場合は、CSS属性をアンカータグに追加します。

テキストフィールドが空の場合は、以前のスタイルに戻す必要があります。

HTML

<div class="col-md-3"> 
    <div class="form-group"> 
     <i class="fa fa-fw fa-cloud-upload"></i> 
     <label for="">File upload</label> 
     <?php if ($announcements_details['file']!='') { ?> 
     <a id="anchor" href='<?php echo base_url(); ?>/documents/<?php echo $announcements_details['file'] ; ?>' target="_blank" style="text-decoration:none"> 
      <?php echo $announcements_details['file'] ; ?> 
     </a> 

     <a class="btn btn-danger btn-xs">Delete</a> 
     <input type="file" id="captionfile" name="captionfile" value="<?php echo $announcements_details['file'] ; ?>"> 
     <?php } else { ?> 
      <input type="file" id="captionfile" name="captionfile" value=""> 
     <?php } ?> 
    </div> 
</div> 

はJavaScript

$("#captionurl").keyup(function() { 
    $("#captionfile").attr("disabled", CheckInputs()); 
    $('#anchor').css({ 
     'pointer-events': 'none', 
     'cursor': 'default', 
     'color': '#91969e' 
    }); 

    function Checkmultiple() { 
     var value = $.trim($("#url1").val()); 
     if (value.length != 0) { 
      valid = true; 
     } else { 
      valid = false; 
     } 
     return valid; 
    } 
}); 
+0

私たちにあなたのhtmlを表示 – Roljhon

+0

あなたは 'CheckInputs()'を呼び出しますが、表示する関数は 'Checkmultiple'と呼ばれます。 – Utkanos

+0

@ Utkanos-私の質問を編集 – Vimal

答えて

4

HTMLテンプレート

<div class="parent"> 
    <input type="text" id="mytextfield" class="basic"/> 
    <a href="#" onclick="doAction()" /> 
</div> 

Javascriptのコード

$(document).ready(function() { 
    var inputElem = $('#mytextfield'); 
    inputElem.keyup(function() { 
     var input= $(this); 
     if(input.val()){ 
     input.addClass('modified'); 
     input.removeClass('basic'); 
     }else{ 
     input.addClass('basic'); 
     input.removeClass('modified'); 
     } 
    }); 
}); 

CSSコード

input{ 
    outline:none; 
} 
.basic{ 
    border:2px solid #d2d2d2; 
} 
.modified{ 
    border:2px solid green; 
} 

Check jsfiddle here

+0

@Arun Redhu-とにかく私は必要なものを手に入れました:-) – Vimal

+0

- おかげで解決しました:-) – Vimal

-1

jQueryの.css()機能は、単に新しいCSSがそれらがCSSファイルでのものよりも高い優先順位を持つエントリが追加されます。あなたは二つのクラス.basic.modifiedを作成したくない場合は、使用してデフォルトにCSSプロパティをリセットすることができます。

if($('#your_text_field').val() == ""){ 
 
    $('#anchor').css({'pointer-events': '', 'cursor': '', 'color': '' }); 
 
}

このコードをチェックし、あなたのテキストフィールドが空の場合。テキストフィールドのキーアップ機能に入れる必要があります。任意のcssプロパティをjQueryで空( "")に設定すると、jQueryによって行われたすべての変更がデフォルトになります。

関連する問題