Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取使用jQuerys html()函数生成的输入值_Javascript_Jquery_Html_Events - Fatal编程技术网

Javascript 获取使用jQuerys html()函数生成的输入值

Javascript 获取使用jQuerys html()函数生成的输入值,javascript,jquery,html,events,Javascript,Jquery,Html,Events,我有一个带有表的页面,当我单击edit时,我使用jQuerysHTML()函数将表元素更改为输入 然后,我想让用户编辑输入值并将其保存到数据库中,问题是当我尝试获取数据时,对于使用html()函数创建的所有输入,我得到了未定义的数据 我确信这与此有关。。任何帮助都会很好!这是我的密码: $('[name="edit"]').click(function(e) { e.preventDefault(); var data = { 'invoice_number':

我有一个带有表的页面,当我单击edit时,我使用jQuerysHTML()函数将表元素更改为输入

然后,我想让用户编辑输入值并将其保存到数据库中,问题是当我尝试获取数据时,对于使用html()函数创建的所有输入,我得到了未定义的数据

我确信这与此有关。。任何帮助都会很好!这是我的密码:

$('[name="edit"]').click(function(e) {
    e.preventDefault();
    var data = {
        'invoice_number': $(this).attr('data-invoice-number'),
        'count': $(this).attr('data-count')
    };

    var description_text = $('[data-description-' + data.count).text();
    var rates_text = $('[data-rates-' + data.count).text();
    var quantity_text = $('[data-quantity-' + data.count).text();

    console.log(description_text);

    $('[data-description-' + data.count + ']').html('<input type="text" name="description" value="' + description_text + '" />');
    $('[data-rates-' + data.count + ']').html('<input type="text" name="rates" value="' + rates_text + '" />');
    $('[data-quantity-' + data.count + ']').html('<input type="text" name="quantity" value="' + quantity_text + '" />');
    $(this).css('display', 'none');
    $('[name="save"][data-count=' + data.count + ']').css('display', 'inline-block');
    $('[name="cancel"][data-count=' + data.count + ']').css('display', 'inline-block');

});
$('[name="save"]').unbind().bind().click(function(e) {

    e.preventDefault();
    var data = {
        'invoice_number': $('[name="save"]').attr('data-invoice-number'),
        'description': $('[name="description"]').val(),
        'rates': $('[name="rates"]').val(),
        'quantity': $('[name="quantity"]').val(),
    };

    console.log(data); // this outputs undefined for values above generated using html() method

    if (data.description == '') {
        append_alert('danger', 'Please enter a <b>Description</b>');
    } else if (data.rates == '') {
        append_alert('danger', 'Please enter your <b>Rates</b>');
    } else if (data.quantity == '') {
        append_alert('danger', 'Please enter a <b>Quantity</b>');
    } else {
        $.post('edit_invoice_item', data, function() {}).done(function() {
            append_alert('success', 'Item Edited!');
            setTimeout(function() {
                location.reload();
            }, 2000)
        });
    }
});
$('[name=“edit”]')。单击(函数(e){
e、 预防默认值();
风险值数据={
“发票编号”:$(this.attr('data-invoice-number'),
'count':$(this.attr('data-count'))
};
var description_text=$('[data description-'+data.count).text();
var rates_text=$('[data rates-'+data.count).text();
var quantity_text=$('[data quantity-'+data.count).text();
控制台日志(描述\文本);
$('[data description-'+data.count+']').html('';
$('[data rates-'+data.count+']').html('');
$('[data quantity-'+data.count+']').html('';
$(this.css('display','none');
$('[name=“save”][data count='+data.count+']').css('display','inline block');
$('[name=“cancel”][data count='+data.count+']').css('display','inline block');
});
$('[name=“save”]')。解除绑定().bind()。单击(函数(e){
e、 预防默认值();
风险值数据={
'发票编号':$('[name=“save”]').attr('data-invoice-number'),
'description':$('[name=“description”]')。val(),
'费率':$('[name=“rates”]')。val(),
'数量':$('[name=“quantity”]')。val(),
};
console.log(data);//对于上面使用html()方法生成的值,此输出未定义
如果(data.description==''){
附加警告(“危险”,“请输入说明”);
}否则如果(data.rates==''){
附加警告(“危险”,“请输入您的费率”);
}else if(data.quantity==''){
附加警告(“危险”,“请输入数量”);
}否则{
$.post('edit_invoice_item',data,function(){}).done(function()){
追加警告('success','Item Edited!');
setTimeout(函数(){
location.reload();
}, 2000)
});
}
});

关于动态添加的元素,请使用事件委派

改变

$('[name="edit"]').click(function(e) {


日志(数据)你能在JSFIDLE上显示你的代码吗这里是一个提琴,点击编辑时不会改变输入,但是…不太清楚为什么
$(document).on('click', '[name="edit"]', function(e) {
$('[name="save"]').unbind().bind().click(function(e) {
$(document).on('click', '[name="save"]', function(e) {