我正在尝试格式化文本区域中的用户输入,幸运的是,该部分可以用多余的空格和回车键替换为单个空格,但是只有在第二次单击按钮时才可以。我想知道怎么了以及如何解决这个问题:
这是我的代码和小提琴: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()">
jQuery / 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()
,并将您的验证绑定到再次单击。因此,您必须在实际运行该验证之前再次单击。
如果您继续调用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");
}
}