[英]Radio/checkbox 'required' attribute in a form?
MDL版本:1.3.0。
瀏覽器:谷歌瀏覽器55.0.2883.87米
操作系統:Windows 10。
我正在嘗試使用MDL進行簡單的調查。 帶無線電或復選框的問題列表作為答案。 頁面加載時不預先檢查無線電/復選框,用戶必須檢查收音機或每個答案至少一個復選框。 如果用戶沒有為至少一個問題選擇答案,則單擊“提交”按鈕時,應顯示標准通知(彈出窗口,指向帶有文本'請選擇其中一個選項'的第一個收音機/復選框)。
我正在使用收音機所需的屬性,但提交所需的彈出窗口只是“閃爍”(顯示和隱藏非常快)並且沒有正確顯示。
簡單的演示是在codepen上 。
<html>
<head>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
<script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
</head>
<body>
<br/>
<br/>
<form>
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="option-1">
<input type="radio" id="option-1" class="mdl-radio__button" name="options" value="1" required>
<span class="mdl-radio__label">First</span>
</label>
<br/>
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="option-2">
<input type="radio" id="option-2" class="mdl-radio__button" name="options" value="2" required>
<span class="mdl-radio__label">Second</span>
</label>
<br/><br/>
<button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent" type="submit" id="submit">Submit</button>
</form>
</body>
</html>
問題不在代碼中。 它確實只是那樣工作。 真正的問題在於腳本
您用於設置提交按鈕樣式的引導腳本不是使用必需選項制作的。 如果你想檢查它評論它,你的代碼將按你的意願工作。消息不會閃現。
解決方案:您可以在“提交”按鈕上使用Javascript功能,該功能將檢查上述兩個字段之一是否已標記。
CSS中存在問題。 看起來如果你隱藏了輸入(沒有寬度/高度和appereance = none
),錯誤信息只會在很短的時間內出現。 如果輸入不可見,可能是預期的瀏覽器行為?
此解決方法將有所幫助,但您肯定必須處理其他類型的表單輸入中的其他問題:
.mdl-radio.is-upgraded .mdl-radio__button {
position: absolute;
width: 1px;
height: 1px;
margin: 0;
padding: 0;
opacity: 0;
-ms-appearance: radio;
-moz-appearance: radio;
-webkit-appearance: radio;
appearance: radio;
border: none;
margin-left: -20px;
}
Codepen: http ://codepen.io/anon/pen/YpozzO
非常相似的問題: 復選框上的材料設計精簡版驗證未顯示錯誤消息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.