私は JavaScript の第一人者ではないので、簡単なコードについては助けが必要です。入力フィールドの値をクリアするボタンがあります。
入力フィールドが空の場合は(ボタン)を非表示にし、その逆(入力フィールド内にテキストがある場合は表示)にしたいと思います。
ソリューションは、純粋な JavaScript または jQuery のどちらでもかまいません。シンプルであるほど良い。
私は JavaScript の第一人者ではないので、簡単なコードについては助けが必要です。入力フィールドの値をクリアするボタンがあります。
入力フィールドが空の場合は(ボタン)を非表示にし、その逆(入力フィールド内にテキストがある場合は表示)にしたいと思います。
ソリューションは、純粋な JavaScript または jQuery のどちらでもかまいません。シンプルであるほど良い。
if(!$('input').val()){
$('#button').hide();
}
else {
$('#button').show();
}
最も単純な形式で ;)
$("input").keyup(function () {
if ($(this).val()) {
$("button").show();
}
else {
$("button").hide();
}
});
$("button").click(function () {
$("input").val('');
$(this).hide();
});
jQueryなしでこれを行うには(本質的に他の人がすでに行ったことと同じで、純粋なjsのみ)。とてもシンプルですが、いくつかのコメントも追加しました。
<body>
<input type="text" id="YourTextBox" value="" />
<input type="button" id="YourButton" value="Click Me" />
<script type="text/javascript">
var textBox = null;
var button = null;
var textBox_Change = function(e) {
// just calls the function that sets the visibility
button_SetVisibility();
};
var button_SetVisibility = function() {
// simply check if the visibility is set to 'visible' AND textbox hasn't been filled
// if it's already visibile and the text is blank, hide it
if((button.style.visibility === 'visible') && (textBox.value === '')) {
button.style.visibility = 'hidden';
} else {
// show it otherwise
button.style.visibility = 'visible';
}
};
var button_Click = function(e) {
// absolutely not required, just to add more to the sample
// this will set the textbox to empty and call the function that sets the visibility
textBox.value = '';
button_SetVisibility();
};
// wrap the calls inside anonymous function
(function() {
// define the references for the textbox and button here
textBox = document.getElementById("YourTextBox");
button = document.getElementById("YourButton");
// some browsers start it off with empty, so we force it to be visible, that's why I'll be using only chrome for now on...
if('' === button.style.visibility) { button.style.visibility = 'visible'; }
// assign the event handlers for the change and click event
textBox.onchange = textBox_Change;
button.onclick = button_Click;
// initialize calling the function to set the button visibility
button_SetVisibility();
})();
</script>
</body>
注: 私はこれを IE9 と Chrome で作成してテストしました。他のブラウザーで必ずテストしてください。また、このフィドルを追加して、動作を確認できるようにしました。
まず、ページ読み込み時にボタンを非表示にします:
jQuery(document).ready(function() {
jQuery("#myButton").hide();
});
onChange
次に、テキスト フィールドの内容が空の場合は常にボタンを非表示にするハンドラーをアタッチします。それ以外の場合は、次のボタンが表示されます。
jQuery("#myText").change(function() {
if(this.value.replace(/\s/g, "") === "") {
jQuery("#myButton").hide();
} else {
jQuery("#myButton").show();
}
});
入力をクリアした後、ボタンを非表示にする必要もあります。
jQuery("#myButton").click(function() {
jQuery("#myInput").val("");
jQuery(this).hide();
});
を使用$('selector').hide()
して、要素をビューから隠したり、$('selector').show()
再度表示したりできます。
さらに良いこと$('selector').toggle()
に、カスタム ロジックなしで表示と非表示を切り替えることができます。