Javascript 多组下拉列表

Javascript 多组下拉列表,javascript,jquery,Javascript,Jquery,在jQuery中,如何为每组手机获取多个下拉列表,例如: 客户可以选择多个手机进行订购。首先,客户需要从下拉列表1到15中选择一个手机号码 如果他们从下拉列表中选择了数字5,则5组Drop溺水应如下所示: 第一组: 第二组: 与上面相同的下拉列表 另一个问题是,如果PHP验证错误导致表单填写不正确,它将重定向回同一页面,但需要重新选择下拉列表。如何使其也起作用?非常确定,您必须将一些指示表单完成失败的变量(如会话或html中的某些隐藏元素)引入到文档加载中,然后检查该变量并手动调用这些下拉列表

在jQuery中,如何为每组手机获取多个下拉列表,例如:

客户可以选择多个手机进行订购。首先,客户需要从下拉列表1到15中选择一个手机号码

如果他们从下拉列表中选择了数字5,则5组Drop溺水应如下所示:

第一组:

第二组:

与上面相同的下拉列表


另一个问题是,如果PHP验证错误导致表单填写不正确,它将重定向回同一页面,但需要重新选择下拉列表。如何使其也起作用?

非常确定,您必须将一些指示表单完成失败的变量(如会话或html中的某些隐藏元素)引入到文档加载中,然后检查该变量并手动调用这些下拉列表

不允许单击submit按钮并在javascript中检查验证。然而,它不会那么安全,但它会为您和用户节省麻烦。我自己更喜欢在点击提交之前检查表单,只需等待几秒钟,直到页面重新加载,我就会面对我选择/写错了什么的事实

使用xmlhttprequest或类似的工具自动验证,例如单击submit,js访问php文件、验证、返回结果并允许提交数据。不会非常安全但是。。。您可以再次检查,如果有人试图非法通过表单传递某些数据,但xmlhttprequest未能捕获,那么将再次捕获同一个php文件。对用户来说是最安全、最好的方式。

假设此标记:

<select id="qty">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
</select>
<div id="placeholder"></div>
使用以下JavaScript:

$('#qty').change(function() {
    var qty = $('#qty').val() * 1;

    $('#placeholder').html(''); //Clear existing.

    for (var i = 0; i < qty; i++)
    {
        $('#placeholder').append(
            '<select id="phone_' + i + '"></select>');
    }
});
在PHP脚本中,您需要检查每个可能的字段名,这可能会很麻烦,最好在提交之前将这些字段组合成一个隐藏字段


看起来@AndriusNaruševičius已经回答了你问题的另一半。

谢谢你的回答——我很理解这个逻辑。谢谢当我选择我想要的手机数量时,如何执行多组下拉列表?我想你应该从最上面的一级开始,循环浏览所有下拉列表,并实际选择它所选择的内容。关键的是,你必须保存从最高到最低的所有选择,否则你将无法轻松获得它。所以在提交表格后,你必须带上手机,这样你才能知道选择了哪一个。没有其他选择:
$('#qty').change(function() {
    var qty = $('#qty').val() * 1;

    $('#placeholder').html(''); //Clear existing.

    for (var i = 0; i < qty; i++)
    {
        $('#placeholder').append(
            '<select id="phone_' + i + '"></select>');
    }
});