使用 Codeigniter 3 关闭警报 javascript 而不刷新页面


Close the alert javascript without refresh page using Codeigniter 3

我使用 javascript 和 Codeigniter 3.04 构建验证表单。 这是我的 HTML 代码

<form class="form-horizontal"  method="POST" onsubmit="check()">
  //code
</form>

在插入数据库之前,我将检查我的函数 javascript 中的长度字符。

function check(){
    var title = document.getElementById('txt_check').value.length;
    if (title <= 50) {
      alert("The title length less than 50 Character ");    
    }
}

当警报显示时,然后我单击"确定",我之前表单中的所有数据都很清楚,所以我必须再次编写。当我使用 Codeigniter 2.00 时,它不会发生,但在这个新版本中,一切都会刷新,我认为所有缓存都已重置。你能帮我删除这个"刷新"只有这个页面吗?

谢谢

您可以像以前一样使用函数,但必须确保警报对话框阻止表单发送!

因此,在调用函数之前插入return

<form class="form-horizontal"  method="POST" onsubmit="return check();">
  //code
</form>

并使函数返回一些内容:

function check(){
    var title = document.getElementById('txt_check').value.length;
    if (title <= 50) {
      alert("The title length less than 50 Character ");    
      return false;
    }
    else{
      return true;
   }
}

因此,如果函数返回 false,浏览器不会发送表单,只有当函数返回 true 时,它才会发送表单。
如果不发送表单,值也不会消失。

您正在提交表单,请尝试添加以下代码行:

$("#my-form").submit(function(e){
    e.preventDefault();
   var title = document.getElementById('txt_check').value.length;
   if (title <= 50) {
       alert("The title length less than 50 Character ");    
   }
});

并在表单中添加一个 Id:

<form id="my-form" class="form-horizontal"  method="POST">

首先,这不是与Codeigniter相关的问题。您只需要阻止提交表单即可。删除onSubmit="check()"并将此代码添加到 javascript 文件中。

$(".form-horizontal").submit(function(e){
    var title = $('#txt_check').val();
    if(title.length<=50){
        alert('Title length is short');
        e.preventDefault();
        return false;
    }
});

另外,请仔细检查您使用的是id="txt_check"而不是类。 #用于 ID。点.用于类。