javascript - Jquery 点击事件适用于第二次点击

标签 javascript jquery html css

我正在尝试格式化文本区域中的用户输入,其中多余的空格和输入被替换为单个空格幸运的是这部分有效,但仅在第二次单击按钮时。我想知道出了什么问题以及如何解决这个问题:

这是我的代码和 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/

相关文章:

javascript - 使用 Constant 组件在 React JS 中设置主要组件的样式

javascript - 任何人都可以帮助网络应用程序中的缓存过程吗?

javascript - 如何使用 jQuery 删除属性?

javascript - Jquery - 对嵌套 ul 列表进行排序

javascript - 使用 jquery/js 获取下一个元素

javascript - 滚动后悬停工具提示停止工作

javascript - 浏览器后退按钮导致隐藏字段出现问题

javascript - 如何使用带有复选框的多选下拉菜单

javascript - 为什么取消隐藏元素会失败?

html - 如何使用身份验证将 HTML 表单提交到另一个域