2013-07-31 69 views
0

我的客戶在他們的聯繫表單中使用HTML5佔位符,但突然間他們已經開始採取類似於值的操作,並允許在未填寫所有必填字段的情況下提交表單。作爲值的HTML5佔位符

是否有解決方法?

的是Here's an example link幫助(姓名,電話號碼和電子郵件)都是必填字段,但只有電子郵件給出了一個錯誤,如果它不是在正確

+1

向我們展示您的驗證方法/腳本 – Spokey

+1

在此處可以正常工作。客戶使用什麼瀏覽器? – putvande

+0

有所謂的「html5表單驗證」。 [Google it。](https://www.google.com/search?q=html5+form+validation) –

回答

1

充滿你用詠歎調要求的,而不是required

也看看HTML5表單驗證:

http://www.the-art-of-web.com/html/html5-form-validation/

本網站包含像有用的例子:

<input type="url" name="website" required pattern="https?://.+"> 

編輯:

請記住,HTML5驗證應該僅用於用戶友好性(可用性,更好/視覺錯誤)處理)。如果瀏覽器不支持html5(就像瀏覽器不支持js一樣),則不會執行驗證。所以仍然使用後端驗證!

+0

我的客戶正在使用Wordpress插件,因此我不確定是否可以在不修改的情況下使用更改標記核心文件。 –

+0

好的,看看[HTML5 Boilerplate](http://wordpress.org/plugins/html5-boilerplate/),[將HTML5聯繫表單添加到您的WordPress網站](http://wpmu.org/add- an-html5-contact-form-to-your-wordpress-site /)和[如何將HTML5表單驗證屬性插入WordPress](http://8tut.com/how-to-insert-html5-form-validation-屬性-和添加更多的字段 - 到 - WordPress的註釋表格/)。 **看看並讓我知道你的想法。** –

1

您的custom.js函數的值設置爲佔位符文本:

if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) { 
    $(this).val($(this).attr('placeholder')).addClass('hasPlaceholder'); 
} 

但在提交刪除該功能被註釋掉:

$('form').submit(function() { 
     //$(this).find('.hasPlaceholder').each(function() { $(this).val(''); }); 
    }); 

我也認爲,您在那裏使用的$.support.placeholder沒有定義。

+0

看看代碼的一部分(這個網站的大部分是由其他人完成的)它看起來像該部分是針對Internet Explorer ...但我是在Firefox和Chrome中都有問題 –

+0

我在代碼中看到了這個if(!$。support.placeholder){我認爲任何瀏覽器不支持佔位符? (你能告訴我更像一個PHP的人嗎?) –

+0

Theres在'jQuery.support'中沒有'placeholder'測試。如果這個沒有定義的地方'(!$。support.placeholder)'將返回'true'。 http://api.jquery.com/jQuery.support/ –