繁体   English   中英

jquery clone输入没有看到值的更改

[英]jquery clone an input doesn't see changes to the value

我有一个隐藏输入的表单。

我.clone()它们并在.dialog()中向用户显示它们。

用户进行了一些更改,我使用.val()来更改隐藏的字段。

然而,下次我克隆表单(没有重新加载页面)我再次有初始值,而不是更新的。

似乎有这个奇怪的错误/结果? 请参阅http://jsfiddle.net/YvBfP/ (因可见输入而损坏)

$(this).closest('td').find('button').click( function ()
{
    var d = $('#pagamento_anticipato').html();

    $(d).dialog({
        modal: true,
        width: 400,
        height: 300,
        close: function( event, ui ) {
                var importo = $(this).find('input[type="text"]').val();
                var descrizione = $(this).find('textarea').val();
                var select = $(this).find('select').val();
                $(this).remove();

                $('#pagamento_anticipato').find('input[id="importo"]').val( importo );
                $('#pagamento_anticipato').find('#descrizione').val( descrizione );
                $('#pagamento_anticipato').find('#tipo').find('option[value="' + select + '"]').attr('selected', true);

            }
    });
    return false;
});

使用.val()设置/获取当前值,而不是元素的属性。

$(element).val(value) // sets current value
$(element).val() // <-- will always return the current value

更改必须使用的属性.attr()

$(element).attr('value',value)

然后,您将看到HTML中的更改

http://jsfiddle.net/wirey00/bJjjw/

编辑:

刚刚发现这不适用于jQuery 1.5.x及更低版本..使用jQuery 1.6.0+测试它并且它工作正常

您正在设置输入的value属性,但检查value属性是否已更改。 要查看元素值,请使用.val()不检查其html。 但是,如果需要更改元素值属性,请使用setAttribute

$('#money')[0].setAttribute('value', 3000);

http://jsfiddle.net/YvBfP/4/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM