2014-01-22 103 views
0

這是我的表單驗證腳本。我在這裏使用了兩種形式。當我集中文本字段時,光標在兩個字段之間跳轉。 http://jsfiddle.net/q9Xq6/如何集中無效輸入字段

var $ = { 
    getById: function (e) { 
     return document.getElementById(e); 
    }, 
    isEmpty: function (e, m) { 
     var e = $.getById(e); 
     var isValid = /[^.]/.test(e.value); 
     $.showMessage(isValid, e, m); 
     return isValid; 
    }, 
    isAlpha: function (e, m) { 
     var e = $.getById(e); 
     var isValid = /[a-zA-Z]/.test(e.value); 
     $.showMessage(isValid, e, m); 
     return isValid; 
    }, 
    isNumeric: function (e, m) { 
     var e = $.getById(e); 
     var isValid = /[0-9]/.test(e.value); 
     $.showMessage(isValid, e, m); 
     return isValid; 
    }, 
    showMessage: function (valid, e, m) { 
     if (!valid) { 
      e.className = 'invalid'; 
      console.log(m); 
      setTimeout(function() { 
       e.focus(); 
      }, 100); 

     } else { 
      e.className = ''; 
     } 
    }, 
    _onBlur: function (form, event, func) { 
     var form = $.getById(form); 
     var elements = form.getElementsByTagName('*'); 
     for (var i = 0; i < elements.length; i++) { 
      elements[i][event] = func; 
     } 
    } 
} 


var abc = function() { 
    return (
     $.isEmpty('name', 'empty message') && 
     $.isAlpha('name', 'alpha message') && 
     $.isEmpty('phone', 'empty message') && 
     $.isNumeric('phone', 'alpha message') 
    ); 
} 
var abc1 = function() { 
    return (
     $.isEmpty('name1', 'empty message1') && 
     $.isAlpha('name1', 'alpha message1') && 
     $.isEmpty('phone1', 'empty message1') && 
     $.isNumeric('phone1', 'alpha message1') 
    ); 
} 
$.getById("form").onsubmit = abc; 
$._onBlur("form", "onblur", abc); 

$.getById("form1").onsubmit = abc1; 
$._onBlur("form1", "onblur", abc1); 
//$._onBlur("form","onkeyup",abc); 
+0

指向您代碼的鏈接不起作用 – Drace

+0

將代碼粘貼到問題部分 – Phoenix

+0

我無法放置jsfiddele鏈接。這是我的實際網址http://jsfiddle.net/q9Xq6/ –

回答

0

這裏,我們去...只是試試這個,

function validation1(reg2) 
{ 

    if(document.reg2.name.value=="") 
{ 
    alert("'Name' empty or not in proper length"); 
document.reg2.name.focus(); 
return false; 
} 
} 

這裏在上面的代碼document.reg2.name.focus();用於集中無效的輸入字段,其中,

  1. REG2是你的表單的名稱,
  2. 名稱是形式的文本字段名。
+0

我的問題在這裏,光標在兩個輸入字段之間跳躍。請檢查這個鏈接jsfiddle.net/q9Xq6在這裏我已經分別添加了兩個表單。聚焦第一個輸入域而不是第四個輸入域。現在你可以找到我面臨的實際問題......任何方式謝謝你發佈:) –

相關問題