【问题标题】:How to get one element from 3 elements in Javascript如何从 Javascript 中的 3 个元素中获取一个元素
【发布时间】:2011-12-23 02:54:14
【问题描述】:

我在 pay[] 的价值中具有三个要素

<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;

                          }
                        }

【问题讨论】:

  • 嗯。什么?这毫无意义……
  • 不可能或关于如何检索它的任何想法?
  • 更像我不知道你想问什么。如何显示您尝试创建的 HTML 示例。您正在混合 PHP 和 Javascript,而不是解释如何/为什么,只是“这里有一些随机代码 sn-ps”。
  • 您需要使用 firebug 或其他工具进行一些调试。检查变量的值。单步执行该函数以查看发生了什么。此外,您可能不希望有 return 语句,因为函数在遇到 return 语句时结束。

标签: javascript php html record


【解决方案1】:

你可以混合使用 php 和 Javascript。诀窍是始终记住,从 Javascript 代码的角度来看,php 代码的输出将是一个常量。

并且需要正确编码 Javascript 常量,对字符串进行适当引用,而不是对数字等进行引用。

我通常使用我的服务器端语言来创建 Javascript 函数调用的参数。 -- 在一大段 Javascript 中创建服务器端内容可能会让人难以阅读并导致代码脆弱。

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

<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 生成的 amount_due 分配给 html 页面顶部的 Javascript 变量,而不是这种解决方案。将 echo 命令埋在函数中间会起作用,但不是很好的风格。

【讨论】:

  • 怎么办? // string to num conversion here
  • 对——浮点数需要显式转换。所以试试... amount_due == parseFloat(elements[2]);
  • return elements.length===3 &amp;&amp; amount_due == parseFloat(elements[2]);
  • 这是在 <input type="checkbox" onclick="checkTotal()" value=" CINV159092;978.56;978.56 " name="pay[]"> 我只想使用第三个值
  • 尚未工作返回 elements.length===3 && amount_due == parseFloat(elements[2]);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多