Javascript jQuery - onchange()方法不起作用

时间:2016-12-17 15:31:37

标签: javascript jquery html5

我的问题是..我试着制作一个表格,我检查电子邮件是否有正则表达式..当它有,然后什么都不会发生..但当它没有..必须设置空白与改变方法().. 我尝试并且必须用javascript和jQuery编写代码..但是我的代码没有任何反应.. 我希望你能帮我解决这个问题 谢谢.. 这是我的代码:

        <div id="formular">
        <p>Hier wird überprüft, ob die angegebene E-Mail Adresse korrekt ist.</p>
        <form>
            E-Mail: <input id="mail" type="text" name="mail" onchange="check();"/>
        </form>

        <script>
            function check(){
            var feld= $("#mail");
            if(feld.value.search(/^([A-Za-z0-9_/\.-]){1,}\@([A-Za-z0-9]){1,}\.([A-Za-z]){2,4}$/)===-1){
                feld.val("");
            }
        }
        </script>

        <hr>
    </div>

2 个答案:

答案 0 :(得分:0)

您正在使用jQuery,因此获得答案的更好方法是以这种方式使用您的脚本:

const titleCase = title => title
    .split(/ /g).map(word => 
        `${word.substring(0,1).toUpperCase()}${word.substring(1)}`)
    .join("");

这是因为<script> function check(){ var feld= $("#mail"); if(feld.val().search(/^([A-Za-z0-9_/\.-]){1,}\@([A-Za-z0-9]){1,}\.([A-Za-z]){2,4}$/)===-1){ feld.val(""); } } </script> 适用于 Javascript 而非 jQuery

答案 1 :(得分:0)

你可能想要做这样的事情,因为你正在使用jQuery。您希望在文档准备好后运行此代码。如您所见,我通过onChange调用替换了输入字段中的.change()

您还应该使用$(selector).val()代替$(selector).value

<div id="formular">
    <p>Hier wird überprüft, ob die angegebene E-Mail Adresse korrekt ist.</p>
    <form>
        E-Mail: <input id="mail" type="text" name="mail" />
    </form>

    <script>
        $(document).ready(function(){
            var feld = $("#mail");
            feld.change(check);

            function check(){
                console.log("Checking it");
                if(feld.val().search(/^([A-Za-z0-9_/\.-]){1,}\@([A-Za-z0-9]){1,}\.([A-Za-z]){2,4}$/)===-1){
                    feld.val("");
                }
            }

        });
    </script>

    <hr>
</div>

注意,这只有在您失去对输入字段的关注时才有效。所以我不确定这是不是你的想法。