如何使用div作为jquery隐藏字段的单选按钮选择器?

发布于 2024-12-12 12:21:18 字数 1176 浏览 0 评论 0原文

我正在尝试使用 jquery 技能创建一个美观的产品订单表单。

我有一些鞋码值,例如 div:

<div id="select-size">
    <div id="size-value-19">39</div>
    <div id="size-value-20">40</div>
    <div id="size-value-21">41</div>
    <input type="hidden" name="option[229]" id="option-size" value="">
</div>

当客户单击鞋码数字时,它应该从 div id 中获取尺码值-?? 部分并将其放入 #option-size 隐藏字段中。 我怎样才能做到这一点?

顺便说一句:我已经找到了一个prototypejs示例来完成这项工作,但是prototype和jquery无法正常协同工作。 让我为您提供原型示例代码:

<script type="text/javascript">
//<![CDATA[
document.observe("dom:loaded", function() {
    function deActivate(elt) {
    elt.removeClassName('active');
    }
    function watchClick(evt) {
    var element = Event.element(evt);
    if (element.hasClassName('outstock')) return;

    $$('#select-size div').each(function(elt) {deActivate(elt)});
    element.addClassName('active');
    var eid = element.id.split('-')[2];
    $('option-size').setValue(eid);
    }
    $$('#select-size div').invoke('observe', 'click', watchClick);
});
//]]>
</script>

我仍然不敢相信 js 框架开发人员如何使用相同的 $ 符号......

I'm trying to create a good looking product order form with jquery skills.

I have some shoe size values as like divs:

<div id="select-size">
    <div id="size-value-19">39</div>
    <div id="size-value-20">40</div>
    <div id="size-value-21">41</div>
    <input type="hidden" name="option[229]" id="option-size" value="">
</div>

When a customer clicks on a shoe size numbers it should take the size-value-?? part from div id and put it into #option-size hidden field.
How can I do that?

BTW: I had found a prototypejs example for this work but prototype and jquery can't work together properly.
Let me give the prototype example code for you:

<script type="text/javascript">
//<![CDATA[
document.observe("dom:loaded", function() {
    function deActivate(elt) {
    elt.removeClassName('active');
    }
    function watchClick(evt) {
    var element = Event.element(evt);
    if (element.hasClassName('outstock')) return;

    $('#select-size div').each(function(elt) {deActivate(elt)});
    element.addClassName('active');
    var eid = element.id.split('-')[2];
    $('option-size').setValue(eid);
    }
    $('#select-size div').invoke('observe', 'click', watchClick);
});
//]]>
</script>

I still can't believe that how js framework developers use same $ sign...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浪漫之都 2024-12-19 12:21:18
$('div').click(function(){

var id = $(this).attr('id');

$('#option-size').val(id);

});
$('div').click(function(){

var id = $(this).attr('id');

$('#option-size').val(id);

});
故人的歌 2024-12-19 12:21:18

OP 提供的代码,已翻译为 jQuery:(

$(function() { // On DOM ready ...
    var $sizes = $('#select-size div'), // Size elements
        $input = $('#option-size'); // Hidden input

    $sizes.click(function() { // On click on size element ...
        var $this = $(this); // Reference to this element
        if (!$this.hasClass('outstock')) { // If not out of stock ...
            $sizes.removeClass('active'); // Remove .active on all
            $this.addClass('active'); // Add .active on this

            $input.val(this.id.split('-')[2]); // Set value in hidden field
        }
    });
});

更新的演示)

一般说明:
您应该能够通过 禁止 jQuery 使用 $ 符号.noConflict() 设置。然而,如果这个库已经存在并且您对prototypejs没有其他用途,建议将功能转换为jQuery。

Code presented by OP, translated to jQuery:

$(function() { // On DOM ready ...
    var $sizes = $('#select-size div'), // Size elements
        $input = $('#option-size'); // Hidden input

    $sizes.click(function() { // On click on size element ...
        var $this = $(this); // Reference to this element
        if (!$this.hasClass('outstock')) { // If not out of stock ...
            $sizes.removeClass('active'); // Remove .active on all
            $this.addClass('active'); // Add .active on this

            $input.val(this.id.split('-')[2]); // Set value in hidden field
        }
    });
});

(Updated demo)

On a general note:
You should be able to suppress jQuery's use of the $ symbol via the .noConflict() setting. However, it is advisable to translate the functionality into jQuery if this library is already present and you have no other use for prototypejs.

转身以后 2024-12-19 12:21:18

添加 jquery

<script type="text/javascript" src="script/jquery-1.5.1.js"></script>

并将此脚本添加到您的页面

<script type="text/javascript">
    $(document).ready(function () {
        $('#size-value-19').click(function () {
            $('#option-size').val($(this).text());
        });
        $('#size-value-20').click(function () {
            $('#option-size').val($(this).text());
        });
        $('#size-value-21').click(function () {
            $('#option-size').val($(this).text());
        });
    });
</script>

add jquery

<script type="text/javascript" src="script/jquery-1.5.1.js"></script>

and add this script to your page

<script type="text/javascript">
    $(document).ready(function () {
        $('#size-value-19').click(function () {
            $('#option-size').val($(this).text());
        });
        $('#size-value-20').click(function () {
            $('#option-size').val($(this).text());
        });
        $('#size-value-21').click(function () {
            $('#option-size').val($(this).text());
        });
    });
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文