2017-10-18 42 views
0

任何人都可以告訴我我的模式有什麼問題,或者我正在做其他一些事情。表格模式按預期工作

First have look at the code 

<style> 
 
     input:invalid ~ span:before { 
 
        content: "not good"; 
 
       } 
 
       input:valid ~ span:before { 
 
        content: "good"; 
 
       } 
 
       input { 
 
        display: block; 
 
       } 
 
     </style> 
 
     <form action=""> 
 
       <input type="text" 
 
pattern="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$ 
 
     "><span> </span> 
 
       </form>

有關模式,我想的是,我不知道模式輸入字段必須包含一個小寫,一個大寫字母和一個數字或一個特殊字符順便說一下,

所以在我這樣的價值這樣@ 9aLkfjakdj應該顯示我good,意味着我的輸入是正確的。

但是隻要我運行我的代碼,它試圖殺死我,它顯示我good,意味着什麼他們是什麼都沒有在輸入字段爲什麼它說這一切都很好,比不管我輸入輸入字段它總是告訴我not good

我基本上是如果輸入字段的是,風格說正確顯示我 文字好,當它不顯示我的文字不好,

謝謝

回答

0

輸入類型(如emailtext)是可選的,所以這就是爲什麼值開始爲「好」而不是「不好」的原因。

此處瞭解詳情:https://css-tricks.com/almanac/selectors/v/valid/

<style> 
 
    input:invalid ~ span:before { 
 
       content: "not good"; 
 
      } 
 
      input:valid ~ span:before { 
 
       content: "good"; 
 
      } 
 
      input { 
 
       display: block; 
 
      } 
 
</style> 
 
<form action=""> 
 
    <input type="text" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,}" required > 
 
    <span></span> 
 
</form>

+0

我爲什麼要使用的密碼類型,什麼是你的模式和我之間的不同? – user2860957

+0

不是他們是我的模式有些事情,因爲你的模式工作正常,刪除更新的評論,因爲你錯了,只是檢查你自己的代碼,只是留下評論使用這個或其他的東西,我會接受你的解決方案,因爲你的代碼工作正常, – user2860957

+0

我編輯你的答案我自己現在我接受它。謝謝,接受我的編輯或編輯你的自我 – user2860957