クリックすると、JS ファイルに不思議なエラーが表示されます。
$('.atcf-submit-campaign-reward-popup-submit').click(function (e) {
e.preventDefault();
if (window.newPass) {
var newReward = reward.clone();
var count = rewardContainer.find('.atcf-submit-campaign-reward').length;
newReward.removeClass('static');
newReward.find('input, select, textarea').val('');
newReward.find('input, select, textarea').each(function () {
var label = $(this).prev().attr('for');
var name = $(this).attr('name');
name = name.replace(/\[(\d+)\]/, '[' + parseInt(count) + ']');
label = label.replace(/\[(\d+)\]/, '[' + parseInt(count) + ']');
$(this)
.attr('name', name)
.attr('id', name);
$(this).siblings('label[for]').remove();
$(this).siblings('label')
.attr('name', name)
.attr('id', name);
});
newReward.find('.atcf-submit-campaign-reward-adjust a').removeClass().addClass(String(count));
newReward.insertBefore($('.atcf-submit-campaign-add-reward')).show();
} else {
var count = rewardContainer.find('.atcf-submit-campaign-reward').length - 1;
$('.atcf-submit-campaign-reward').removeClass('static');
};
function passValue(source, set) {
$(set).val($(source).val());
}
function addValue(source, set) {
$(set).html($(source).val());
}
passValue('.reward-popup input#rewards\\[0\\]\\[price\\]', '.atcf-submit-campaign-rewards input#rewards\\[' + parseInt(count) + '\\]\\[price\\]');
addValue('.reward-popup input#rewards\\[0\\]\\[price\\]', '.atcf-submit-campaign-rewards label#rewards\\[' + parseInt(count) + '\\]\\[price\\]');
passValue('.reward-popup #rewards\\[0\\]\\[description\\]', '.atcf-submit-campaign-rewards input#rewards\\[' + parseInt(count) + '\\]\\[description\\]');
addValue('.reward-popup #rewards\\[0\\]\\[description\\]', '.atcf-submit-campaign-rewards label#rewards\\[' + parseInt(count) + '\\]\\[description\\]');
passValue('.reward-popup input#rewards\\[0\\]\\[limit\\]', '.atcf-submit-campaign-rewards input#rewards\\[' + parseInt(count) + '\\]\\[limit\\]');
addValue('.reward-popup input#rewards\\[0\\]\\[limit\\]', '.atcf-submit-campaign-rewards label#rewards\\[' + parseInt(count) + '\\]\\[limit\\]');
var api = $.data($('#main-slider')[0], 'liquidSlider');
api.adjustHeight(true, api.getHeight());
$.magnificPopup.close();
window.newPass = true;
});
最初は e がクリック機能にアタッチしているイベントハンドラーだと思っていましたが、可能な限りすべてを試した後です。必要なヘルプのためにここに貼り付けます。
コードの機能: 送信ボタンに添付され、クリックすると、入力フィールドから値が取得され、その内容が別のフォーム フィールドに追加されます。
データを追加して閉じることになっています。最初の部分を実行している間、モーダルを閉じず、「e is undefined」(jquery-1.10.2.js) エラーをスローします。
これを解決するのに役立つものを共有したいと思います。