2015-06-22 111 views
0

2天前,以netbeans和wamp服务器启动后的第一个问题。只有一些桌面vb背景,所以我的行话可能会关闭。在vb中,我想把焦点放在控件上。php,将页面滚动到指定的html控件的表格

我有很长的一段时间,如很多滚动,HTML中的网页形式,显示我想要的方式。大约有300个控件,几乎所有的复选框。

当在窗体底部单击提交按钮时,我想查找任何不完整的数据,将页面滚动到该控件并给用户一条消息,以便我不插入未完成的记录。

我该怎么做?

+0

它们的形式可能由PHP生成,验证和滚动必须在Javascript中完成客户端。您还应该运行验证服务器端,因为用户控制着客户端。 –

+0

谢谢Dan,javascript是。我曾经以为我只需要PHP和MySQL,当我开始,现在我添加JavaScript到HTML和CSS。 – tiredeyes

回答

0

在表格中,“必要”的属性添加到每个输入标签。 EX:

<input type="text" required> 

当表单提交,与“必要”属性的第一输入标签将被滚动到,并且用户将被通知。

0

你在找什么叫做验证。您应该使用PHP验证服务器上的数据,以确保数据符合您定义的条件(因为数据可能来自操纵表单并且用户可以停用JavaScript)。您还应该查看转义数据,例如mysqli_real_escape_string以防止SQL注入(恶意用户在表单中输入SQL语句以更改/暴露数据库中的数据的攻击)。你应该清理你的数据。

但是,这是所有的服务器端。你也希望有一个良好的用户体验,甚至不发送数据到服务器,除非是有效的。这是在客户端使用javascript完成的。好处是:没有页面加载的即时反馈。但它与安全性无关,因为它很容易操纵或关闭javascript。

我会推荐使用jQuery,然后像jQuery Validation这样的插件。对于滚动部分,您可以使用jQuery scrollto。你可以结合jQuery验证的这两个with a callback。例如(只是一个快速和肮脏的例子):

$(".form-selector").validate({ 
    invalidHandler: function(event, validator) { 
    // 'this' refers to the form 
    var errors = validator.numberOfInvalids(); 
    if (errors) { 
     var message = errors == 1 
     ? 'You missed 1 field. It has been highlighted' 
     : 'You missed ' + errors + ' fields. They have been highlighted'; 
     $("div.error span").html(message); 
     $("div.error").show(); 
     // Now scroll to the first error message 
     var first_element = validator.errorList[0].element; 
     $(window).scrollTo(first_element); 
    } else { 
     $("div.error").hide(); 
    } 
    } 
}); 

但最好的事情是开始与jQuery的教程,然后挖成。

相关问题