簡體   English   中英

如何使用jQuery驗證防止在輸入字段中寫入url?

[英]How do I prevent writing url's inside my input field using jQuery validation?

我們使用https://jqueryvalidation.org/庫來驗證我們網站上的聯系表格。

詳細信息將發送至3rd party web service

jQuery("#contactform").validate({ // initialize the plugin
    rules: {
        name: {required:true},
        email: {required:true},
        phonenumber: {required:true}
    },
    submitHandler: function(form, evt) {
        evt.preventDefault();
        var name = jQuery('#name').val();
        var email = jQuery('#email').val();
        var phonenumber = jQuery('#phonenumber').val();
        var contactform_url = jQuery("#contactform").attr('action');

        jQuery.ajax({
            type: "POST",
            url: contactform_url,
            cache: false,
            data: {
                name: name,
                email: email,
                phonenumber: phonenumber
            },
            beforeSend: function() {
            }
        }).done(function(data, textStatus, jqXHR) {
        }).fail(function(jqXHR, textStatus, errorThrown) {
        });

    }
});

問題 :當前驗證無法阻止用戶在name輸入字段中輸入url

所以var name = jQuery('#name').val(); 可以具有https://www.google.com/的值

您知道如何避免用戶在我們的name輸入字段中輸入linkurl ,或者至少將網址轉換為string

任何幫助是極大的贊賞。 謝謝

嘗試使用以下代碼,希望它能為您服務

$('#name').on('input', function() {
    var input=$(this);
    if (input.val().substring(0,4)=='www.'){input.val('http://www.'+input.val().substring(4));}
        var re = /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/;
        var is_name=re.test(input.val());
            if(is_name){
                alert('valid');
            }
        }
        else{
            alert('invalid');
        }
    });

你的第二個條件是填補這里

var url = "google.com";

var lastCom = url.slice(-3);

alert(lastCom); // "com"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM