Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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 如何针对侧面加载的HTML_Javascript_Jquery_Stripe Payments_Checkout - Fatal编程技术网

Javascript 如何针对侧面加载的HTML

Javascript 如何针对侧面加载的HTML,javascript,jquery,stripe-payments,checkout,Javascript,Jquery,Stripe Payments,Checkout,我正在使用一个名为Stripe的支付网关,专门使用它的系统 我已经设法让购物车工作,它创建客户,订单和付款时,我需要根据产品。然而,我不是非常面向javascript的,但是我想集成一种自动将用户电子邮件插入到checkout email字段的方法。我试过这个: $(document).ready(function() { $('.stripe-button-el').click(function() { setTimeout(function() {

我正在使用一个名为Stripe的支付网关,专门使用它的系统

我已经设法让购物车工作,它创建客户,订单和付款时,我需要根据产品。然而,我不是非常面向javascript的,但是我想集成一种自动将用户电子邮件插入到checkout email字段的方法。我试过这个:

$(document).ready(function() {
    $('.stripe-button-el').click(function() {
        setTimeout(function() { 
            $('.Fieldset').closest('.Fieldset-input').attr('value', 'some@email.com');
            console.log('Value 1: ' + $('.Fieldset-input').attr('value'));
            console.log('Value 2: ' + $('.Fieldset').closest('.Fieldset-input') .attr('value'));
        }, 2000);
    });
});
但是,这两个值都未定义。我添加
setTimeout()
的原因是签出是由一个按钮触发的,在单击该按钮之前,HTML不会添加到站点,因此,我无法访问其属性。我知道这样做是为了安全,以防止您访问卡信息,但有没有办法解决这个问题

我将用户的电子邮件存储在一个对象中,因此我只想说:

$(document).ready(function() {
    var user { 'email': <?= $email ?> };

    // put this email inside the checkout email property
    $('input[type=email]').attr('value', user.email);
}
$(文档).ready(函数(){
var用户{'email':};
//将此电子邮件放入“签出电子邮件”属性中
$('input[type=email]').attr('value',user.email);
}

感谢@yomisimie在评论中提供了这一点,有一种“高级”方式添加包含“电子邮件”字段的按钮:

handler.open({
    email: 'some@email.com'
});

可以在中找到。

似乎是在回发上添加元素,因此我认为您必须在doc ready块中进行检查,以查看元素是否存在。类似于以下内容:

$(document).ready(function() {
  if ($('.Fieldset').find('.Fieldset-input').is(':visible')) {
    $('.Fieldset').find('.Fieldset-input').attr('value', 'some@email.com');
    console.log('Value 1: ' + $('.Fieldset-input').attr('value'));
    console.log('Value 2: ' + $('.Fieldset').find('.Fieldset-input').attr('value'));
  }
});

在我看来,您必须使用
.find()
方法来获取
输入

检查可选配置选项@Liam似乎不是。可能是一些表单提交的东西。如果动态加载,则在单击该按钮之前不会将HTML添加到网站。请使用
.on()
这是一个添加的表单,其输入字段上的ID是唯一的(每次都会更改)所以很难瞄准这样的目标,我正在寻找一种方法,用条纹配置@ LiamDid,你认为他们这样做有很好的理由吗?也就是说,为了防止XSS攻击?我肯定会在其他领域,如背景CSS等,因为这是不可定制的)谢谢你!