2014-09-05 70 views
-1

我有客戶端驗證,如果在onblur期間HTML文本輸入字段爲空,屏幕上會顯示「需要值」消息。除用戶點擊此表單的提交按鈕時的特殊情況外,這種方式非常有效。HTML/JS:onblur函數來查看某個按鈕是否被按下

提交缺少文本的表單會導致服務器端驗證失敗,從而導致出現更明顯的錯誤消息。我的問題是,在新頁面加載之前,模糊消息會在非常短的時間內啓動。

這不是一個功能問題,但它看起來有點不專業。編輯:爲清楚起見,我應該指出,這個功能是從這個網站推出:

<span id="hname">Name:</span><br> 
<input type="text" id="name" onblur="field_val('#hname', this);" 
    class="contact" name="name" size="31"> 

函數本身是在這裏:

function field_val(label_id, input_id) 
{ 
    var input_text = $(input_id).val();  
    var label_text = $(label_id).html(); 

    /* Considering surrounding the code in this function 
     with an if statement that will not execute in the case 
     that a submit button with an id of "fsubmit" has been 
     pressed in conjunction with the onblur event that 
     called this function in the first place */ 

    if (input_text == "") 
    { 
     if(label_text.indexOf("(required field)") == -1)  
      $(label_id).html(label_text + " (required field)"); 

     $(label_id).css("color", "red"); 
    } 
    else 
    { 
     if(label_text.indexOf("(required field)") != -1)  
      $(label_id).html(label_text.substring(0, label_text.indexOf("(required field)"))); 

     $(label_id).css("color", "rgb(51,51,51)"); 
    } 
} 

任何幫助表示讚賞!

+0

我在這個代碼的任何地方都看不到onblur。 – developerwjk 2014-09-05 22:59:58

+0

@developerwjk它在html中 – Oriol 2014-09-05 23:22:08

回答

1

這使我想到的最簡單的事情是使用HTML5 required屬性:

<input type="text" class="abc" id="id123" oninvalid="this.setCustomValidity('Required Field.')" onchange="this.setCustomValidity('')" required> 

我設置默認的消息顯示「必填項目」。這在所有瀏覽器上都經過測試和測試。奇蹟般有效。

也不允許您提交表格,除非填寫了所有required字段。