2011-12-23 76 views
1

我有[]在如何从3元获得一个元素在Javascript

<td><input type="checkbox" name="pay[]" value=" 
       <?php 
        echo $invoiceArr[$record_count].";"; 
        echo $TotalArr[$record_count].";"; 
        echo $amount_dueArr[$record_count]; 
        ?> 
        " onClick="checkTotal()"/> 
      </td> 

工资的价值三个要素,我想用

echo $amount_dueArr[$record_count]; 

里面只有VAR元素: 可能是类似的东西?

var elements = document.getElementsByName("pay[][2]"); 


    function checkTotal() 
{ 
     var sum = 0; 
     var elements = document.getElementsByName("pay[]"); 
} 

这可能吗? 我是否清楚自己?

谢谢大家家伙...

完整的JavaScript函数

function checkTotal() { 
          document.payform.totalNS.value = ''; 

          var sum = 0; 
          var pay_amt_no_id = document.payform.pay_amt_noDocID_textbox.value; 
          //var elements = document.getElementsByName("pay[]"); 

          var amount_due = <?php echo $amount_dueArr[$record_count]; ?>, // no quotes 
          var sum = 0, // using 1 var statement for declarations. 
          var elements = []; 
          var elements = document.getElementsByName("pay[]").value.split(";"); 
          // pay[] is invoice_num;total;amount_due. 
          return elements.length===3 && amount_due == elements[2]; // counting on 
          // string to num conversion here 



          document.payform.pay_amt_noDocID_checkbox.value = pay_amt_no_id; 

          document.payform.totalNS.value = sum; 
          for (i=0;i < elements.length;i++) { 
            if (elements[i].checked) { 
           sum = sum + +elements[i].value; 

          } 
         } 
+0

嗯。什么?这是没有意义的... – 2011-12-23 03:00:34

+0

不可能或任何想法如何检索它? – 2011-12-23 03:07:19

+3

更像是我不知道你想问什么。如何显示您正在尝试创建的HTML样本。你在混合PHP和Javascript,而不是解释HOW/WHY,只是“这是一些随机代码片段”。 – 2011-12-23 03:09:06

回答

1

这是罚款,你正在做的混合PHP和JavaScript。诀窍是永远记住,从Javascript代码的角度来看,PHP代码的输出将是一个常量

这一个Javascript常数需要被正确编码,字符串适当地引用,但不适合号等

我通常使用我的服务器端语言创建的JavaScript函数调用的参数。 - 在一大块Javascript中创建服务器端内容可能会令人困惑,导致代码变得脆弱。

请注意,你的问题说I have three elements in value of pay[] at嗯,不完全。在Javascript/DOM域中您将付款[]设置为包含分号的单个字符串。我会写代码为:

<td><input type="checkbox" name="pay[]" 
    value="<?php echo $invoiceArr[$record_count].";".$TotalArr[$record_count]. 
        ";".$amount_dueArr[$record_count]; ?>" 
    onClick="checkTotal()"/> 
</td> 

为了让它更清楚一点,您要向输入元素提供一个字符串值。

回复:我想用

echo $amount_dueArr[$record_count]; 

....

当然,没问题。例如:

function checkTotal() 
{ 
    var amount_due = <?php echo $amount_dueArr[$record_count]; ?>, // no quotes 
     sum = 0, // using 1 var statement for declarations. 
     elements = []; 
    elements = document.getElementsByName("pay[]").value.split(";"); 
    // pay[] is invoice_num;total;amount_due. 
    return elements.length===3 && amount_due == elements[2]; // counting on 
               // string to num conversion here 
} 

但是比起这个解决方案,我建议你指定的PHP生成的HTML页面的顶部AMOUNT_DUE到JavaScript变量。将echo命令隐藏到函数的中间会起作用,但不是很好的风格。

+0

我看不到结果? – 2011-12-23 04:03:00

+0

它不起作用... – 2011-12-23 04:08:25

+0

如何做到这一点?'//数字转换为字符串' – 2011-12-23 04:38:16