如果value包含点,则阻止模式关闭

时间:2018-01-31 12:46:08

标签: javascript jquery

我有输入的模态



 function check(){
    if($("#columnName").val().indexOf(".") != -1){
    alert("Column name cann't contain commas!");
    return false;
    }
    }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="columnName" class="form-control">
and button

    <input type="button" id="applyButton" value="Apply" class="btn btn-default" onclick="check();">
&#13;
&#13;
&#13;

但即使我返回false,如果值包含点,弹出窗口仍然会关闭。我想让它保持打开,直到用户删除点

4 个答案:

答案 0 :(得分:1)

您的函数永远不会返回true,因此您的check()将始终失败。

function check(){
  if($("#columnName").val().indexOf(".") != -1){
    alert("Column name cann't contain commas!");
    return false;
  }
  return true
}

由我和@charlietfl

提供支持的一些例子

https://jsfiddle.net/xe7uwr87/1/

问候

答案 1 :(得分:0)

使用此示例

 $('#ModalId').on('hide.bs.modal', function (e) {
      if($("#columnName").val().indexOf(".") != -1){
        e.preventDefault();
        e.stopPropagation();
        return false;
      }
        return true;
    });

希望这个帮助

答案 2 :(得分:0)

function check(){
   if($("#columnName").val().indexOf(".") != -1){
    alert("Column name cann't contain commas!");
    return false;
   }else {
       $('.modal').modal('hide');
   }
}

答案 3 :(得分:0)

有各种各样的方式。

首先,要使用您自己的示例:您应该写onclick="check()"而不是return true,而方法应该'hide.bs.modal'在其他部分。

您可以做的另一件事是收听let strArray :NSArray = self.filteredArray?.object(at: indexPath.row) as! NSArray 事件,然后添加此代码,然后通过停止事件传播和冒泡来阻止模式关闭,如@ jalay-oza所述