我不是一个JavaScript大师,所以我需要一个简单代码的帮助。 我有一个清除输入字段值的按钮。
如果输入字段为空,我希望隐藏它(按钮),反之亦然(如果输入字段中有文本,则可见)。
解决方案可以是纯JavaScript或jQuery,没关系。越简单越好。
答案 0 :(得分:6)
$("input").keyup(function () {
if ($(this).val()) {
$("button").show();
}
else {
$("button").hide();
}
});
$("button").click(function () {
$("input").val('');
$(this).hide();
});
答案 1 :(得分:5)
if(!$('input').val()){
$('#button').hide();
}
else {
$('#button').show();
}
用它最简单的形式;)
答案 2 :(得分:1)
首先隐藏页面加载上的按钮:
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();
});
答案 3 :(得分:1)
您可以使用$('selector').hide()
隐藏视图中的元素,并使用$('selector').show()
再次显示该元素。
更好的是,您可以使用$('selector').toggle()
让它显示和隐藏,而无需任何自定义逻辑。
答案 4 :(得分:1)
在没有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中编写并测试了这一点,请确保您在其他浏览器中进行测试。另外,我添加了this fiddle,因此您可以看到它正常工作。