【发布时间】:2014-08-02 15:24:12
【问题描述】:
我有一个带有 JavaScript 和 PHP 验证的表单。表单的功能之一是复制 DIV 并将其添加到页面的 JavaScript 函数。复制功能没有任何问题,PHP 和 Javascript 验证对初始 DIV 有效。
问题: PHP 验证不适用于新创建的 DIV。
换句话说,我有一个使用 JavaScript 函数复制的 DIV,并且有一些 PHP 代码。问题在于 PHP 代码仅适用于初始 DIV 而不是新创建的 DIV。
这是复制的 HTML 代码:
<div id="addinput">
<p> lorem
<input onBlur="data(this)" type="text" id="valA" name="valA"
value="<?php echo ($valA);?>"/>
<span><?php echo $valAErr;?></span>
<select id="valD" name="valD" size="1">
<option selected disabled hidden value=''></option>
<option value="valueA">A</option>
<option value="valueB">B</option>
</select>
<span class="error"><?php echo $valDErr;?></span>
<a href="#" id="addNew">Add</a>
</p>
</div>
这是复制 DIV 的初始 JavaScript 函数。这是在我在 Javascript 函数和 HTML 代码中添加 PHP 代码之前制作的,并且可以正常工作。
$(function() {
var addDiv = $('#addinput');
var i = $('#addinput p').size() + 1;
$('#addNew').live('click', function() {
$('<p> lorem
<input onBlur="data(this)" type="text" id="valA" name="valA' + i +'"
value=""/>
<select id="valD" name="valD' + i +'" name="tip" size="1">
<option selected disabled hidden value=''></option>
<option>A</option>
<option>B</option>
</select>
<a href="#" id="remNew">Delete</a>
</p>').appendTo(addDiv);
i++;
return false;
});
$('#remNew').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});
这是我用 PHP 编写的 JavaScript 代码,但它不起作用:
$('#addNew').live('click', function() {
$('<p>lorem
<input onBlur="data(this)" type="text" id="valA" name="valA' + i +'"
value="<?php echo ($valA);?>"/>
<span class="eroareData, error"> <?php echo $valAErr;?> </span>
<select id="valD" name="valD' + i +'" name="tip" size="1">
<option selected disabled hidden value=''></option>
<option value="A">A</option>
<option value="B">B</option>
</select>
<span class="error"><?php echo $valCErr;?></span>
<a href="#" id="remNew">Delete</a> </p>').appendTo(addDiv);
【问题讨论】:
-
您不能使用 JavaScript,一种客户端语言。并期望它直接执行服务器端代码。您将需要使用 AJAX。
-
像这样使用 jQuery 选择器真的很讨厌。这没有任何意义。简化它!亲爱的上帝...
-
Ok... 因为我还不知道 AJAX,所以表单的那部分现在只有 javascript 验证。非常感谢
-
对于 Marco:没有论据,但您打算如何使用它?请添加一个示例,以便我更好地理解
-
内联 PHP 代码将在脚本首次呈现到浏览器时执行,而不是在您单击某些内容时执行。但是,虽然我不完全遵循您在做什么,但我不相信您根本需要 PHP/服务器端。复制 div 可以在纯 jQuery 中完成。
标签: javascript php html forms validation