我创建了一个带有Spry验证(即javascript)的文本字段的表单。用户可以从1到10中选择表单中的行数。我需要下面的代码也可以扩展,但我对javascript不太熟悉,无法使用它。
$ divkey是控制表单中行数的变量。
原始
<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {validateOn:["change"], maxChars:20});
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>
所以我需要行'var sprytextfield1 ...'来重复基于$ divkey,下一行是'var sprytextfield2 ...'等等。有人可以重写一下这样它会起作用吗?
尝试使用php
<script type="text/javascript">
<?php for ($i = 0; $i < $divkey; $i++) { $num=$i+1; ?>
var sprytextfield<?php echo $num;?> = new Spry.Widget.ValidationTextField("sprytextfield<?php echo $num;?>", "none", {validateOn:["change"], maxChars:20});
<?php }?>
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>
尝试使用javascript
<script type="text/javascript">
var numwrestler = <?php echo $wrestlerkey; ?>;
var sprytextfield = [];
for (var i = 0; i < numwrestler; i++) {
var num = i+1;
var sprytextfield[num] = new Spry.Widget.ValidationTextField("sprytextfield"+num, "none", {validateOn:["change"], maxChars:20});
}
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>
答案 0 :(得分:1)
我建议你使用Javascript数组来完成这类任务。
您的代码大部分都是正确的,但for循环中的var
不正确,而num
变量的创建而不是仅使用i
是多余的。
<script type="text/javascript">
var sprytextfield = new Array();
var numwrestler = <?php echo $wrestlerkey; ?>;
for(var i = 0; i < numwrestler; i++){
sprytextfield[i] = new Spry.Widget.ValidationTextField("sprytextfield"+(i+1), "none", {validateOn:["change"], maxChars:20});
}
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>
在将脚本包含在脚本中之前,请确保在文件中定义了PHP变量。
答案 1 :(得分:0)
在您的PHP代码中,您永远不会定义变量divkey
,通过deafault,该值将为0。
尝试:
<script type="text/javascript">
<?php $divkey = 10; for ($i = 0; $i < $divkey; $i++) { $num=$i+1; ?>
var sprytextfield<?php echo $num;?> = new Spry.Widget.ValidationTextField("sprytextfield<?php echo $num;?>", "none", {validateOn:["change"], maxChars:20});
<?php }?>
var sprytooltip1 = new Spry.Widget.Tooltip("sprytooltip1", "#sprytrigger1");
</script>
请注意,由于$num
和i++
$num=$i+1
的变量将增加2