【发布时间】:2013-12-20 18:15:33
【问题描述】:
希望标题能传达你的想法,但基本上,我有一个 php 页面,其中包含几个可以通过 jquery 扩展的选择表单项,因此用户可以在他们的订单中添加多个项目。
<div class="orderSet" id="order1">
<select id="movie1" class="movie" name="movie">
<option value="" disabled selected>Select movie</option>
<option value="godfather">The Godfather</option>
blah...blah....
<option value="titanic">Titanic</option>
</select><br>
<select id="medium1" class="medium" name="medium">
<option value="" disabled selected>Select format</option>
<option value="dvd">Movie on DVD</option>
<option value="bluray">Movie on BluRay</option>
<option value="poster">Original movie poster</option>
</select>
</div>
新 div 的 id 为 orderN,其中 N 是 jquery 代码分配的数字,同样适用于电影和媒体 id。有没有办法获得这个数字,以便我可以创建一个订单项目数组?我很好地将数字反馈给脚本,因此验证页面从正确数量的项目开始。
创建这些额外 div 的脚本是
$("#add").click(function () {
var intId = $("#orderItem div").length + 1;
var orderSet = $("<div class=\"orderSet\" id=\"order" + intId + "\"/>");
var movie = $("<select id=\"movie" + intID + "\" class=\"movie\"><option value=\"\" disabled selected>Select movie</option><option value=\"godfather\">The Godfather</option>...more options...<option value=\"titanic\">Titanic</option></select><br>");
var medium = $("<select id=\"medium" + intID + "\" class=\"medium\"><option value=\"\" disabled selected>Select format</option><option value=\"dvd\">Movie on DVD...more options...</select>");
var removeButton = $("<input type=\"button\" class=\"remove\" value=\"remove\" />");
removeButton.click(function () {
$(this).parent().remove();
});
orderSet.append(movie);
orderSet.append(medium);
orderSet.append(removeButton);
$("#orderItem").append(orderSet);
});
【问题讨论】:
-
所以您只需要考虑添加和删除 div 的情况下生成的 div 数量吗?
-
我认为应该这样做。我可以从那里创建一个数组并验证数组中的每个项目。可能是一个漫长的过程,但它应该会奏效。最好创建一个动态变量名称,例如 $movie+number,但我可以解决这个问题。
-
考虑使用
name="order[]",因为这将在您发布表单时创建一个 PHP 数组。您可以使用data-line="1"进行简单的 jQuery 引用。
标签: javascript php jquery validation