0

我创建了一个带有Spry Validation(即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>
4

2 回答 2

1

我建议您对此类任务使用 Javascript 数组。您的代码大部分是正确的,但是varfor 循环中的 in 不正确,并且创建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 变量包含在脚本中之前,请确保在文件中定义了它们。

于 2013-07-11T01:39:38.843 回答
0

在您的 PHP 代码中,您永远不会定义变量divkey,默认情况下该值将为 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在循环的每次迭代中用作索引的变量将增加 2,i++因为$num=$i+1

于 2013-07-11T01:34:51.007 回答