根据使用Javascript选择组合框动态添加表单字段

时间:2012-03-02 18:59:55

标签: php javascript html validation

我必须为网站制作一个信息提交页面,在选择组合框值后,会有一些字段应该在值上生成。

如果我们选择" 2"从组合框的值,应生成两个个人详细信息字段。后来我必须在PHP的帮助下在数据库中检查这些值。

我必须对这些生成的字段进行验证。

有许多领域我必须使用类似的东西。但我必须从它开始。

请帮帮我,或者给我一些链接,我可以从中获得一些帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

首先,我建议您学习使用JQuery(javascript库)。

http://api.jquery.com/

http://docs.jquery.com/Plugins/Validation

http://docs.jquery.com/UI/Autocomplete

我已经完成了与使用jquery UI自动完成,克隆,重新定位和验证功能描述的内容非常相似的事情,而且这一切都相对简单。基本上,你要做的就是在表单上使用jquery validate(一个jquery插件)),为你的组合框添加一个jquery UI自动完成功能,并拥有你可能希望隐藏的所有细节字段表格之外的div。当组合框发生变化时,它会调用一个根据需要销毁字段的函数,然后从表单外部克隆空白字段,填充它们(如果需要)并将它们插入到表单内的适当位置。验证器在class属性上运行,因此只需确保新字段具有正确的类就足以将它们包含在验证中。 Jquery及其插件几乎可以在标准的javascript中运行,因此它不应该很难集成。当你弄清楚如何做东西时会有一些旋转时间,但听起来你无论如何都会有相当多的东西,它会让你在中长期内变得容易多了

答案 1 :(得分:0)

我将假设您的组合将使用“.valueCount”标识,并且默认金额元素为1,可以在“.field”下找到。它的一般容器都由“fieldgroup”标识

您的第一个字段的名称必须设置为dynamicfield[]。用你想要的任何东西替换“dynamicfield”。

然后使用jQuery为您的第一个字段创建原型:

var $prototype = $(".field").clone();

请注意,.field可以是字段本身的常规包装。

现在为您的组合创建一个事件处理程序:

$(".valueCount").change(function(){
   var count = $(this).val(), $fields = $(this).closest("fieldgroup").find(".field");


   if ($fields.size() > count)
       //remove fields
       $fields.slice(count).remove();
   else if ($fields.size() < count) {
       //add fields

       for (var i = count - $fields.size() ; i ; i--)
            $prototype.clone().insertAfter($fields.last());
   }           

});

在服务器端,您将拥有单个数组中的所有值$ _REQUEST ['dynamicfield'];

做你喜欢的任何验证。