【问题标题】:How do I make a drop down list selection update an image on a web page?如何使下拉列表选择更新网页上的图像?
【发布时间】:2011-09-30 01:20:19
【问题描述】:

http://www.gofundme.com/sign-up/ 网站上,他们可以在您输入金额的下方选择您的货币。当您更改货币时,它会更改您输入的金额旁边的符号。

我想在我的网站上做一些类似的事情,但我什至不知道如何去做。谁能指出我正确的方向?

伙计们,放轻松点;我以前做过一些网站制作,但从来没有太壮观。

【问题讨论】:

  • 提示:在您添加的所有标签中,只有 javascript 是相关的。
  • @yi_H - 不正确,如果图像是背景,css 也是如此
  • 我建议更改标题以表明您想要做什么。否则,人们不太可能查看您的问题。
  • @cwolves 是的,CCS 和 HTML 以这种方式相关。
  • @yi_H - 请解释如何使用 css 类切换背景图像不保证 css 标签。

标签: javascript css ajax dynamic


【解决方案1】:

该网站上的代码都是客户端的,而且相当简单。

您单击该链接,它会调用显示选择弹出 ​​div 的 Javascript。

当您在选择弹出 ​​div 上选择一个项目时,它也会调用 Javascript。该javascript修改:

  • 金额字段的原始 div 标签文本(即大号
  • 下面的文字描述了您当前选择的货币类型(弹出 div 的那个)
  • 隐藏表单字段中的数据,带有所选货币类型

...并关闭弹出的 div。

编辑: 显然,您还需要 jQuery library 才能使用我的答案中的代码 :) 您可以替换自己的 Javascript 代码,并获得相同的结果,但看起来不一样和下面的代码一模一样。

这是代码,直接从“查看源代码”中撕下:

金额框:

<div class="amt_box bg_white">
    <label class="currency-display">$</label>
    <input type="text" name="Funds[goalamount]" value="" class="big-field"
        tabindex="1" />
</div>

打开弹出div的链接:

<h4>Display: <a href="#" class="currency-select">US Dollars</a></h4>

弹出的div:

<div class="currency currency-select-div" style="position:absolute; display:none;margin-left:45px;">
    <ul>
        <li><a href="#" class="currency-item" title="$" code="USD">&#36; USD Dollar</a></li>
        <li><a href="#" class="currency-item" title="$" code="CAD">&#36; CAD Dollar</a></li>
        <li><a href="#" class="currency-item" title="$" code="AUD">&#36; AUD Dollar</a></li>
        <li><a href="#" class="currency-item" title="£" code="GBP">&#163; GBP Pound</a></li>
        <li><a href="#" class="currency-item" title="€" code="EUR">&#128; EUR Euro</a></li>
    </ul>
</div>

隐藏的表单域:

<input type="hidden" id="currencyfield" value="USD" name="Organizations[currencycode]" />

将它们绑定在一起的 Javascript (jQuery) 代码:

$('.currency-select').click(function() {
    $('.currency-select-div').show();
    return false;
});

$('.currency-item').click(function() {
    $('.currency-select-div').hide();
    $('.currency-display').text($(this).attr('title'));
    $('.currency-select').text($(this).text());
    $('#currencyfield').val($(this).attr('code'));

【讨论】:

  • 对于 OP:这个解决方案需要 jQuery
  • 这看起来像一个 jQuery 解决方案。可能应该为 OP 提及这一点。
  • 看起来不错...现在我希望 OP,一个自称是新手的人,不要将 jQuery 的 $ 与货币符号 $ 混淆...这可能会发生。大声笑。
  • 嗨,梅林,感谢您的详细回答。现在只得去做一些阅读。我喜欢这个地方。每个人都很乐于助人。我自己要花很长时间才能学会所有这些东西。再次感谢。莎拉
【解决方案2】:

您需要首先使用下拉列表唯一标识您尝试更改的文本。

<span id="currencySymbol">$</span>

然后你会想要创建一个包含你想要的值的下拉列表。

<select id="currencySelect">
    <option value="$">Dollars</option>
    <option value="£">Pounds</option>
    <option value="€">Euros</option>
</select>

然后你需要使用JavaScript根据下拉列表的值来改变文本的值。

document.getElementById('currencySelect').onchange = function(){
    document.getElementById('currencySymbol').innerHTML = this.value;
}

【讨论】:

  • +1 是一个简单的答案,不需要 jQuery。不过,我建议将 Javascript 与 HTML 分开。
  • 您好,感谢您抽出宝贵时间回答。这个答案看起来不像上面的那个那么令人生畏,很遗憾我不能同时点击你的刻度。或者搔痒你的点击,或者别的什么:)莎拉
猜你喜欢
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
相关资源
最近更新 更多