2012-07-13 52 views
1

我有移动的jquery ..如何防止一个href显示另一个页面,直到第一页完全填充

<div data-role="page" id="main" data-title="Main Page"> 

这里有两个文本框必须由用户填写的链接。那么这里是一个链接..

<a href="#sub" data-role="button" id="save" data-icon="star" data-theme="b" data-transition="flip">Show Employee Data</a> 

“sub”是data-role =“page”,它显示了这两个文本框的数据。 我的.js写..

$(document).delegate('#save', 'click', function(e) { 
     if(document.getElementById('name').value=="") 
     { alert('Name Not Entered..');e.preventDefault();return false; } 
    }); 

万事万物运行良好,也显示报警,但第二页也显示因为有HREF = ID“拯救”的。我需要的仅仅是在验证第一页后显示第二页。我是否做错了什么?请建议..

- EDIT--我在chrome中看到了break模式,刚刚点击href第二页后就加载了,然后它进入代码。我必须立即停止加载第二页。是否有任何我们可以写在href“$ sub”...> ?? ??

回答

0

我有我的问题解决了..我写了

$(document).ready(function() 
    { 
     $("#save").click(function(e) 
     { 
      if(document.getElementById('name').value=="") 
      { 
      alert('Name Not Entered..');e.preventDefault();return false; 
      } 
      if(document.getElementById('surname').value=="") 
      { 
      alert('Surname Not Entered..');e.preventDefault();return false; 
      } 
     }); 
    }); 

});

现在第二页并未仅仅通过点击href显示,而是在验证第一页之后显示。 感谢您的帮助..

1

我想这应该这样做:

$(document).delegate('#save', 'click', function() { 
    var valid = undefined; 
    $(':text').each(function() { 
    valid = valid === undefined || valid ? $(this).val().length > 0 ? false; 
    }); 
    if(valid) { 
    return true; 
    } else { 
    alert('validation failed.'); return false; 
    } 
}); 

说明了验证:

  1. 有效最初是未定义
  2. 如果有效为undefined或true,则检查该输入有一个值,如果未设置有效为假
  3. 如果有效未定义或为真,则保持它为假,因为如果一个输入没有值,则验证失败

如果你想确保他们输入的例如超过3个字母,请使用$(this).val().length > 2

+0

“仅在确认第一页后显示此第二页” - 请准确告诉我们您要验证的内容。 – Simon 2012-07-13 12:40:34

+0

第一页有两个文本框,用户应在两个文本框中输入内容,然后只显示第二页。就是这样.. – Dev 2012-07-13 13:00:29

+0

它只是“某些东西”,无所谓。 – Simon 2012-07-13 13:17:27

0

尝试return false;,而不是return;。这应该可以防止链接的默认行为,或者在您的函数参数[function(ev){...]中包含该事件并致电ev.preventDefault();

你可能想看看:event.preventDefault() vs. return false

祝你好运!

而且,尝试使用点击(),而不是代表()和你错过在最后一个括号:

$("#save").click(function(e) { 
    if(document.getElementById('name').value=="") 
    { alert('Name Not Entered..');e.preventDefault();return false; } 
}) 
+0

我试过e.preventDefault();但点击链接后立即加载第二页,然后输入验证码。有什么我们可以写在 Dev 2012-07-13 12:13:34

+0

经过再看一次,我看到你的JavaScript中有语法错误。最后你错过了一个括号)。把那里,一切都应该正常工作。你也不需要两者(返回false;和e.preventDefault())。一个或另一个就足够了。此外,请尝试使用click()而不是委托()。 – ryuusenshi 2012-07-13 12:36:49

+0

但是$(document).click(function(e){});通过点击页面上的任何位置来运行。它会是对的吗?代码应该通过点击相关的按钮来运行,这里的按钮是href .. – Dev 2012-07-13 12:57:42

0

你可以试试这个方法....而不是“一”,你可以有ID

$(function(){ 

    $("a").click(function(e){ 

     if($("#txtName").val().length === 0) 
     { 
     e.preventDefault(); 
     return false; 
     }  
    }); 
}); 
+0

只需单击href第二页显示然后运行代码。 – Dev 2012-07-13 12:27:29

相关问题