我正在尝试格式化文本区域中的用户输入,其中多余的空格和输入被替换为单个空格幸运的是这部分有效,但仅在第二次单击按钮时。我想知道出了什么问题以及如何解决这个问题:
这是我的代码和 fiddle :http://jsfiddle.net/EnXp7/
HTML
<textarea type="text" id="address" onfocus="if(this.value===this.defaultValue)this.value=''" onblur="if(this.value==='')this.value=this.defaultValue">
Input Address Here
</textarea>
<input type="button" id="Validate" value="Validate" onClick="valbtn()">
J查询/Javascript
function valbtn() {
$("#Validate").click(function () {
$('#address').val($('#address').val().replace(/\s+/g, ' '));
});
var x = document.getElementById("address").value;
if (x === "" || x === "Input Address Here") {
alert("No Input");
}
}
最佳答案
您当前的函数 valbtn()
在第一次点击时被调用并将您的验证绑定(bind)到再次点击。因此,在实际运行该验证之前,您必须再次单击。
如果你一直调用valbtn()
onclick,修改函数如下:
function valbtn() {
// Run it instead of binding it to the click event
$('#address').val($('#address').val().replace(/\s+/g,' '));
var x = document.getElementById("address").value;
if (x === "" || x === "Input Address Here") {
alert("No Input");
}
}
关于javascript - Jquery 点击事件适用于第二次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091976/