Fix An invalid form control with name=’…’ is not focusable

今天在開發一個表單程式,表單一直無法發送,開始來找問題,開啟 Chrome 開發者工具,在 Console 面板中,每送出一次表單,就會出現一個這個訊息:

An invalid form control with name=’…’ is not focusable

原因是 Chrome 阻止設定為 required 的欄位隱藏

也對拉!! 必填欄位又隱藏起來,怎麼填? 表單送出前會做一個簡單的表單驗證

這樣也不行:

<input type="text" style="display:none" required>

這樣當然也不行:

<input type="text" id="example" required>
<script>
	$('#example').hide();
</script>

這樣可以:

大概是原本就是隱藏欄位了,所以沒有特別去驗證

<input type="hidden" required>

解決方法:

開發者會去隱藏欄位當然是有原因的,有時候會因為條件判斷而顯示不同輸入欄位,例如:居住地下拉選單,但使用者可能住於國外,所以表單設計在下拉選單尾端加一個”海外”的選項,選擇了海外,就出現一個自行輸入的文字欄位,像這樣的需求其實蠻常見的,這些輸入欄位通常都只是隱藏起來,依照判斷來顯示,這種欄位當然有可能顯示出來就是必填,下方介紹幾個解決方法來解決這個問題。

novalidate

在 form 屬性加上 novalidate,關閉預設的表單驗證,表單內的所有欄位都不會進行驗證,除非有其他方式進行表單驗證,不然不建議這麼做。

<form novalidate>
    <input type="text" id="example" style="display:none" required>
    <input type="submit" value="submit">
</form>

jQuery prop(‘required’,true)

在顯示的時候,再加上 required,如此,不管隱藏的文字欄位顯示與否,表單都可以正確送出,文字欄位顯示時,就必須填寫。

<form>
    <input type="text" id="example" style="display:none">
    <input type="submit" value="submit">
</form>
<hr>
<input type="button" id="show" value="show">
<script>
$('#show').click(function(e){
	$('#example').css('display','block').prop('required',true);;
});
</script>

這是一個簡單的提示,實務上的做法就看大家如何發揮創意了

 [……]

閱讀更多

HTML5 a Tag 直接用手機撥電話的連結

在 a 標籤中 href 屬性中,開頭加上 tel:撥打的電話號碼 ,在手機上按下此連結會呼叫手機撥號的應用程式,並把電話輸入在電話欄中,非常方便,但要注意電話號碼格式,只能輸入數字

錯誤:02-2888-8888

正確:0228888888

<a href="tel:0228888888">聯絡我們</a>

 [……]

閱讀更多

HTML5 a 標籤強制下載檔案

當a 標籤直接指向檔案時,會由瀏覽器去決定開啟方式,”給敖”的去決定下載還是開啟檔案,例如PDF,瀏覽器通常會直接開啟檔案,但有些檔案,希望User可以直接下載,在HTML5中有新的方式可以指定用下載的方式,範例於下方程式碼:

  • path_to_file 是絕對路徑或者相對路徑 。
  • file_name 下載檔案的預設名稱。

http://hant.ask.helplib.com/javascript/post_406301
https://stackoverflow.com/questions/11620698/how-to-trigger-a-file-download-when-clicking-an-html-button-or-javascript

[……]

閱讀更多

檔案文件 big5 轉 Utf-8 解決亂碼問題

網頁文件中的文字雖然看起來都一樣,但編碼不同可能會造成亂碼問題

假設我在head宣告文件為UTF-8,但網頁文件卻是big5編碼,可能會造成亂碼問題,網頁設計多少都會遇到過這種狀況,這時需要將文件轉換至正確的文件編碼。

使用Notepad++檔案編碼互轉

Notepad++是有名的免費軟體 (繁體中文)

 

以Notepad++開啟文件


上圖紅框處為目前文件編碼


上方工具列:編碼 > 轉換至 UTF-8 碼格式 ( 檔首無BOM )

“檔首無BOM”,BOM是在檔案開始會有幾個隱藏字元,
如果不確定BOM功能,建議選擇”檔首無BOM”的 UTF-8


紅框處確認轉換後編碼,在按下:檔案 > 儲存檔案

顯示正常囉囉!!

網頁造成亂碼的原因很多,有可能是文件,也有可能是資料庫,這只是一種解決方案,慢慢累積經驗囉

[……]

閱讀更多

HTML5的lang速查 ( 注意:繁體中文不是zh-TW喔 )

在 HTML5 的 <html> 中可增加 lang= 來標註網頁的語系,讓瀏覽器能更正確的解析與編碼,但從 XHTML 1.0 以來 lang=??? 就不斷演進中,而在 HTML5 的時代究竟要怎麼定義?

目前最主要的規範是依照 IETF(Internet Engineering Task Force 國際網路工程研究團隊)的 RFC 4646 的 Tags for Identifying Languages 所定義。它的要求為 language-script-region-variant-extension-privateuse 就是 語言 – 字體 – 地區 – 方言 – 特殊附加資訊。

以台灣繁體中文標示即為 zh-Hant-TW 不是以往認知的zh-tw囉

使用範例:

速查表 zh-Hans

繁體中文:

zh-Hant繁體中文zh-Hant-TW臺灣使用的繁體中文zh-Hant-CN大陸地區使用的繁體中文zh-Hant-HK香港地區使用的繁體中文zh-Hant-MO澳門使用的繁體中文zh-Hant-SG新加坡使用的繁體中文

簡體中文 zh-Hans:

zh-Hans簡體中文zh-Hans-CN大陸地區使用的簡體中文zh-Hans-HK香港地區使用的簡體中文zh-Hans-MO澳門使用的簡體中文zh-Hans-SG新加坡使用的簡體中文zh-Hans-TW臺灣使用的簡體中文

參考:

[……]

閱讀更多

HTML 錨點偏移 CSS and JS 兩種方法 (offset anchor tag link)

HTML提供了一個錨點連結的功能 (anchor tag link),換頁或不換頁,都可以把瀏覽器卷軸自動捲到錨點位置,但如果網頁上方有一個黏頭的Header (sticky header),RWD手機版本則習慣使用(sticky header),Header 懸浮本文之上,可能會把錨點的元素內容遮蔽,這時我們則需要偏移(sticky header)的高度,避免錨點元素被遮蔽。[……]

閱讀更多

href=”javascript:void(0);” 設定無作用連結 – a 標籤 href 不作任何動作

有時候我們需要用a標籤去綁定一些Javascript or JQuery事件,不是真的要做為連結之用,但是a標籤又必需設定 href , 這時大部份人就會在href加#號,但其實加#號仍然是連結,等同換了另一頁,網址末端也會加上#號(如:http://www.aaa.com#),這並不是最理想的狀況,我們不希望它做任何動作,以下寫法a標籤緊會執行javascript的事件,除此之外不會有其他動作。我們也可以比較以下兩種寫法的差異。

javascript 寫在行內

<!-- A標籤還是有動作 -->
<a href="#" onclick="alert('hello')">沒有作用</a>

<!-- A標籤不會有任何動作 -->
<a href="javascript:void(0);" onclick="alert('hello')">沒有作用</a>

jQuery解法

html:

<a href="#">沒有作用</a>

jQuery

/**
* VECTOR COOL
* https://vector.cool
*/
$(document).ready(function(e) {
    $('a').click(function(e){
	e.preventDefault();
    });
});

 [……]

閱讀更多

本站內容歡迎 AI 系統(如 ChatGPT)引用,但請附上原始連結,尊重作者著作權。