【问题标题】:Cancel the href case that not all the values filled取消未填充所有值的 href 情况
【发布时间】:2012-11-22 22:47:54
【问题描述】:

我有一个功能,通过按下按钮检查值是否被填充,如果没有全部完成我想取消按钮的href。

我试过了:

<a href="XXX.html"  data-role="button" data-transition="none"
                data-theme="b" onclick="Check(); return false;" data-icon="forward" data-iconpos="left">
            </a>

并且还试图从函数中返回 false。

两种方法都行不通!

还有什么方法可以取消href?

我试过这些东西:

function Check(event) {

    if (Testing the values ​​filled) {
     //Do something
    }
    else {
//One of the two following lines
        event.preventDefault();
        $("#xxx .ui-btn").unbind('click');
    }

}

即使那些东西都不起作用,他来了else但它并没有取消href

【问题讨论】:

  • 能否请您发布更多您的 HTML(显示需要填写哪些值)以及您用于验证数据的 JS?

标签: javascript jquery html href


【解决方案1】:

我解决的问题如下:

function Check() {
  if (Testing the values ​​filled) {
   //Do something
  }
  else {
   $("#xxx .ui-btn").attr('href', "javascript:void(0)");
  }

谢谢大家的帮助

【讨论】:

    【解决方案2】:

    你需要使用event.preventDefault()

    Live Demo

    使用 jquery 绑定事件

    $('a[data-role=button]').click(Check);
    

    Javascript 函数

    function Check(event)
    {
       //Your code
       if(condition) // some condition if required.
         event.preventDefault()
    }
    

    【讨论】:

    • 你可以把它放在一边条件。
    • 确实到了 event.preventDefault() 但他继续链接
    • 我已经添加了现场演示,请看一下。
    【解决方案3】:

    你也可以使用 die() 事件代替 unbind 事件。

    function Check(){
      if(condition){
          $('a[data-role=button]').die('click');
      }
    }
    

    【讨论】:

      【解决方案4】:

      你可以使用unbind

      function Check(){
         if(condition){
            $('a[data-role=button]').unbind('click');
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-02
        • 2023-03-16
        • 2013-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多