2012-03-24 134 views
0

我有一个页面,如果用户想要编辑前一个屏幕上的某些文本,用户可以访问该页面。一旦他们完成编辑它被用于验证的JavaScript提交表单数据,这是形式:通过javascript提交表单

<script type="text/javascript"> 
function validate(F) {  
    var post = F; 
    var title = F; 
    post = post.trim(); 
    title = title.trim(); 
    if(post.length == 0) { 
     alert("This is blank"); 
     return false; 
    } 
    else { 
     if(title.length == 0) { 
      var agree=confirm("Really?"); 
      if (agree) { 
       return true; 
      } 
      else { 
       return false; 
      } 
     } 
     return true; 
    } 
} 

<form id='editpost' action='' method='post' > 
Your Post:<br/> 
<input type='hidden' name='' value='""'> 
Title: <input type='text' name='' value='""'/><br/> 
<textarea name='' cols='100' rows='100'>""</textarea> 
<br/><input type=submit value='Submit' name='' onclick='return validate(document.forms[0]);'><input type=submit value='Cancel' name=''> 
</form> 
} 

我检查值被在相应的框中使用的JavaScript进入

当表单最终提交时,一些数据会在mysql数据库中用来自表单的数据更新,并且用户被重定向到页面以查看它。我想要做的是通过JavaScript中的post方法提交表单,这是为了阻止用户关闭他们的javascript,并有可能将空白bodys输入到数据库中。我真的不知道如何做到这一点。

+2

你永远不应该只依靠客户端验证。你也应该执行服务器端验证! – 2012-03-24 20:03:23

+1

如果他们关闭JavaScript,你的代码将如何运行? – dldnh 2012-03-24 20:04:06

+0

我要实现这两个,但这对我来说更难,因为我以前没有真正处理过javascript。 – W0lf7 2012-03-24 20:06:07

回答

1

您在页面上的提交按钮应该是一个虚拟按钮,只能调用您的验证功能。然后提交只是说document.getElementById('editpost')。submit();从你的代码。 (如果我的记忆失败了我,你可能会试着提交大写S提交)

希望这会有所帮助。

编辑:

<form id='editpost' action='editPost.php' method='post' > 
... 
<br/><input type=button value='Submit' name='alterPost' onclick='validateForm(document.forms[0]);'><input type=submit value='Cancel' name='no'> 
</form> 

然后在你的JavaScript,而不是返回一个值

... 
// if it's valid 
F.submit(); 
... 
// if it's not valid 
// show the user a message explaining why 
... 
+0

你能告诉我一个例子吗?我不确定我明白。 – W0lf7 2012-03-24 20:06:31

+0

@ W0lf7示例添加 – user980058 2012-03-24 20:20:33

+0

谢谢!这是我正在寻找:) – W0lf7 2012-03-24 20:40:04

1

我希望能够做的就是通过POST方法提交表单javascript,这是为了阻止用户关闭他们的javascript,并可能输入空白

你实际需要的是服务器端(非客户端/ Javascript)验证,以防止“无效数据”(但是你定义它)从发送/保存到你的数据库。

如果客户端(浏览器)上的Javascript被关闭没有您的Javascript将运行,表单将POST(或GET)到您定义的任何操作(editPost.php)。你需要添加验证码/处理到editPost.php