【问题标题】:Set the value of multiple form elements with the same ID, Paypal设置多个具有相同ID的表单元素的值,Paypal
【发布时间】:2012-11-16 07:29:24
【问题描述】:

我正试图找出一个 paypal 问题。

我在页面上有多个“立即购买”按钮,我需要为所有按钮设置一个值。

“立即购买”按钮元素都具有相同的 ID。

每个“立即购买”按钮代表一个许可范围,因此有“1-5”、“6-10”、“11-20”等。我有一个版本列表,它们在页面中放置如下在一个循环中:

$strWeights1 .= "<span id='1".$row['Tag']."' onclick='select_weight(this.id)' class='linkoff'>". $row['Tag'] . "</span> | ";

我可能想多了,但是在所有“立即购买”按钮中设置所选“版本”的最佳方法是什么?

我正在考虑使用贝宝变量“item_number”

干杯

就像我说的按钮来自 PayPal,我无法控制那里字段的命名,因此我遇到了问题。

好的,所以选择权重功能只是让 span 像 href 标签一样工作,打开和关闭“按钮”。

function select_weight(value){

        value = value.substr(1);

        document.forms["fontweight"]["fw"].value = value;
        //this.forms["item_number"].value = value;

        thin = document.getElementById('1Thin');
        if(thin != null){
            thin.className = "linkoff";
            thin = document.getElementById('2Thin');
            thin.className = "linkoff";
        }
        light = document.getElementById('1Light');
        if(light != null){
            light.className = "linkoff";
            light = document.getElementById('2Light');
            light.className = "linkoff";
        }
        book = document.getElementById('1Book');
        if(book != null){
            book.className = "linkoff";
            book = document.getElementById('2Book');
            book.className = "linkoff";
        }
        medium = document.getElementById('1Medium');
        if(medium != null){
            medium.className = "linkoff";
            medium = document.getElementById('2Medium');
            medium.className = "linkoff";
        }
        bold = document.getElementById('1Bold');
        if(bold != null){
            bold.className = "linkoff";
            bold = document.getElementById('2Bold');
            bold.className = "linkoff";
        }
        heavy = document.getElementById('1Heavy');
        if(heavy != null){
            heavy.className = "linkoff";
            heavy = document.getElementById('2Heavy');
            heavy.className = "linkoff";
        }
        black = document.getElementById('1Black');          
        if(black != null){
            black.className = "linkoff";
            black = document.getElementById('1Black');
            black.className = "linkoff";
        }

        //alert(value);
        fontweight1 = document.getElementById('1'+value);
        fontweight2 = document.getElementById('2'+value);
        fontweight1.className = "linkon";
        fontweight2.className = "linkon";}

这是按钮的代码,它在页面中出现了大约 16 次,'item_name' 和 'hosted_button_id' 每次都会改变:

<form target=\"paypal\" action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" onsubmit=\"return validateForm()\" >
            <input type=\"hidden\" name=\"cmd\" value=\"_s-xclick\">
            <input type=\"hidden\" name=\"hosted_button_id\" value=\"xxxxxxxx\">
            <input type=\"hidden\" name=\"item_name\" value=\"".$strProdName." : 1-5 terminals \">
            <input type=\"hidden\" name=\"item_number\" value=\" [set this value] \">
            <input type=\"image\" onMouseOver=\"this.src='images/paypalon.png';\" onMouseOut=\"this.src='images/paypaloff.png';\" src=\"images/paypaloff.png\" border=\"0\" name=\"submit\" alt=\"PayPal — The safer, easier way to pay online.\">
            <input type='hidden' name='notify_url' value='http://ipn.php'>
        </form>

我一直在考虑如何解决这个问题。我可以使用表单验证功能来访问特定表单并以这种方式设置值吗?我一直在尝试这个并取得了任何成功。

function validateForm(form)
{
    var x=document.forms["fontweight"]["fw"].value;

    if (x==null || x=="")
    {
        alert("Hold on a moment, you need to select a weight before hitting the ‘Buy’ button.");
        return false;
    }
    else{

        field = document.form;
        //this.form['item_number'].value = x;
        alert(field['item_name'].value);
        return false;
    }
}

表单标签中有这个调用

onsubmit="return validateForm(this.form)"

我是在正确的轨道上>还是应该放弃它?

【问题讨论】:

  • 同一id的元素不能超过一个
  • 所有元素必须有不同的ID,很多元素用同一个ID是错误的,很多元素可以用class,但不能用ID。
  • 请向我们展示更多代码,尤其是按钮和select_weight 函数。生成一些span 标签的代码没有多大帮助
  • 我添加了更多代码

标签: javascript html paypal


【解决方案1】:

好的,看来我已经解决了这个问题。我已使用“onClick”将验证移至按钮。我正在传递 (this.form) 并使用它来获取元素。

虽然我理解多个具有相同名称的 ID 是错误的,但 PayPal 按钮的名称与我的代码不同。

【讨论】:

    猜你喜欢
    • 2017-06-09
    • 1970-01-01
    • 2016-12-06
    • 2021-11-17
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    相关资源
    最近更新 更多