javascript - 如何获取 html 垃圾邮件值并复制到另一个 html 字段
问题描述
我已经使用 $_POST 将数据从这个表单发送到另一个页面。但是,我需要将一个字段的值复制到另一个字段,如下所示(id="valparc" -> 要复制的字段的 id):
该字段因用户的选择而异。我需要做的是获取该字段的值并在用户单击“提交”时复制到另一个字段。
这是html
<section class="form-section">
<div id="c-mask"></div>
<div class="container">
<div class="col-xs-12 col-sm-6 col-sm-offset-6 col-md-5 col-md-offset-6">
<div class="form-lp">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<h1 class="title-form">Quanto sua empresa precisa?</h1>
</div>
<form action="/calculadora/enviar.php" method="post">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="value-range-total">
<span>R$</span>
<span id="slidernumber">3000</span>
</div>
<input type="range" name="valor" min="1000" step="500" max="10000" value="3000" />
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<span class="value-range">R$ 1mil</span>
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<span class="value-range text-right">R$ 10mil</span>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<h2 class="title-form">Em quantas parcelas?</h2>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2 p-5">
<!--<button class="button-line">6x</button>-->
<label for="6x" id="l6x" class="lblcheck">6x</label>
<input type="radio" id="6x" name="parcelas" value="6x" placeholder="6x" class="ipt-check">
</div>
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2 p-5">
<!--<button class="button-line">12x</button>-->
<label for="12x" id="l12x" class="lblcheck active">12x</label>
<input type="radio" id="12x" name="parcelas" checked value="12x" placeholder="6x" class="ipt-check">
</div>
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2 p-5">
<!--<button class="button-line active">18x</button>-->
<label for="18x" id="l18x" class="lblcheck">18x</label>
<input type="radio" id="18x" name="parcelas" value="18x" placeholder="6x" class="ipt-check">
</div>
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2 p-5">
<!--<button class="button-line">24x</button>-->
<label for="24x" id="l24x" class="lblcheck">24x</label>
<input type="radio" id="24x" name="parcelas" value="24x" placeholder="6x" class="ipt-check">
</div>
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2 p-5">
<!--<button class="button-line">36x</button>-->
<label for="36x" id="l36x" class="lblcheck">36x</label>
<input type="radio" id="36x" name="parcelas" value="36x" placeholder="6x" class="ipt-check">
</div>
<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2 p-5">
<!--<button class="button-line">48x</button>-->
<label for="48x" id="l48x" class="lblcheck">48x
<input type="radio" id="48x" name="parcelas" value="48x" class="ipt-check">
</label>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<h3 class="second-title-form">Parcelas a partir de:</h3>
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<h4 class="title-form total-form">R$<span name="presta" id="valparc">357,83</span><span class="ast">*</span></h4>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<button class="btn-blue-light" id="finalbtn">SOLICITAR COTAÇÃO</button>
</div>
<div class="boxenviar">
<input type="text" name="nome" placeholder="Nome" required class="ipt_form">
<input type="text" name="tel" placeholder="Telefone" id="tel" required class="ipt_form">
<input type="email" name="email" placeholder="E-mail" required class="ipt_form">
<input type="hidden" name="whats" value="99999999999">
<input type="hidden" name="valparc" value="">
<input type="submit" name="submit" value="solicitar cotação" class="ipt_sbmt">
</div>
</form>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<small class="info-form"><span class="ast">*</span> Esta é uma simulação. A análise real é individual e varia de empresa para empresa, para conhecer a sua, solicite uma cotação online.</small>
</div>
</div>
</div>
</div>
</div>
</section>
不需要是“输入”我只需要表单上的这个字段保持隐藏并获取另一个字段的值。
接收数据的字段——
<input type="hidden" name="valparc" value="">
这个要复制的字段是动态的,由下面的js生成
<script type="text/javascript">
$(document).ready(function(){
$("[type=range]").change(function(){
var newval= $(this).val();
$("#slidernumber").text(newval);
if ($('#6x').is(':checked')) {
var result2 = newval * ((Math.pow((1+0.06), 6)*0.06)/(Math.pow((1+0.06), 6) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
} else if ($('#12x').is(':checked')) {
var result2 = newval * ((Math.pow((1+0.06), 12)*0.06)/(Math.pow((1+0.06), 12) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
} else if ($('#18x').is(':checked')) {
var result2 = newval * ((Math.pow((1+0.06), 18)*0.06)/(Math.pow((1+0.06), 18) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
} else if ($('#24x').is(':checked')) {
var result2 = newval * ((Math.pow((1+0.06), 24)*0.06)/(Math.pow((1+0.06), 24) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
} else if ($('#36x').is(':checked')) {
var result2 = newval * ((Math.pow((1+0.06), 36)*0.06)/(Math.pow((1+0.06), 36) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
} else if ($('#48x').is(':checked')) {
var result2 = newval * ((Math.pow((1+0.06), 48)*0.06)/(Math.pow((1+0.06), 48) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
}
});
$('#l6x').click(function(){
var valnew = $("[type=range]").val();
$('#l6x').addClass('active');
$('#l12x').removeClass('active');
$('#l18x').removeClass('active');
$('#l24x').removeClass('active');
$('#l36x').removeClass('active');
$('#l48x').removeClass('active');
var result2 = valnew * ((Math.pow((1+0.06), 6)*0.06)/(Math.pow((1+0.06), 6) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
});
$('#l12x').click(function(){
var valnew = $("[type=range]").val();
$('#l6x').removeClass('active');
$('#l12x').addClass('active');
$('#l18x').removeClass('active');
$('#l24x').removeClass('active');
$('#l36x').removeClass('active');
$('#l48x').removeClass('active');
var result2 = valnew * ((Math.pow((1+0.06), 12)*0.06)/(Math.pow((1+0.06), 12) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
});
$('#l18x').click(function(){
var valnew = $("[type=range]").val();
$('#l6x').removeClass('active');
$('#l12x').removeClass('active');
$('#l18x').addClass('active');
$('#l24x').removeClass('active');
$('#l36x').removeClass('active');
$('#l48x').removeClass('active');
var result2 = valnew * ((Math.pow((1+0.06), 18)*0.06)/(Math.pow((1+0.06), 18) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
});
$('#l24x').click(function(){
var valnew = $("[type=range]").val();
$('#l6x').removeClass('active');
$('#l12x').removeClass('active');
$('#l18x').removeClass('active');
$('#l24x').addClass('active');
$('#l36x').removeClass('active');
$('#l48x').removeClass('active');
var result2 = valnew * ((Math.pow((1+0.06), 24)*0.06)/(Math.pow((1+0.06), 24) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
});
$('#l36x').click(function(){
var valnew = $("[type=range]").val();
$('#l6x').removeClass('active');
$('#l12x').removeClass('active');
$('#l18x').removeClass('active');
$('#l24x').removeClass('active');
$('#l36x').addClass('active');
$('#l48x').removeClass('active');
var result2 = valnew * ((Math.pow((1+0.06), 36)*0.06)/(Math.pow((1+0.06), 36) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
});
$('#l48x').click(function(){
var valnew = $("[type=range]").val();
$('#l6x').removeClass('active');
$('#l12x').removeClass('active');
$('#l18x').removeClass('active');
$('#l24x').removeClass('active');
$('#l36x').removeClass('active');
$('#l48x').addClass('active');
var result2 = valnew * ((Math.pow((1+0.06), 48)*0.06)/(Math.pow((1+0.06), 48) - 1));
$('#valparc').text(result2.toFixed(2).replace(".", ","));
});
$('#finalbtn').click(function(){
$('.boxenviar').css('display','block');
$('#c-mask').css('display','block');
});
$('#c-mask').click(function(){
$('.boxenviar').css('display','none');
$('#c-mask').css('display','none');
});
});
</script>
这是我的第一份 js 工作,请耐心等待。我不太了解(还)。
当用户选择 12X 或其他方式的贷款时,字段“valparc”会更改其值。我已经尝试了很多在这里看到的东西,但还没有成功。
解决方案
一种方法是在 form.submit 处填充该字段。您将事件侦听器附加到提交按钮,防止它自动提交,获取您想要的文本并将其应用于隐藏元素值。最后,您可以在完成后提交表单。
请注意,您的 html 没有显示表单开始标记,并且页面上可能有多个表单,因此我引用了封闭的表单元素.closest('form')
let b = document.querySelector('#finalbtn');
b.addEventListener('click', doValue)
function doValue(e) {
e.preventDefault(); // stops automatic form submit
let val = document.querySelector('span#valparc').innerText;
document.querySelector('input[name="valparc"]').value = val;
console.log(document.querySelector('input[name="valparc"]').value)
}
<form>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<h4 class="title-form total-form">R$<span id="valparc">357,83</span><span class="ast">*</span></h4>
<!-- Field to copy -->
</div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<button class="btn-blue-light" id="finalbtn">SOLICITAR COTAÇÃO</button>
</div>
<div class="boxenviar">
<input type="text" name="nome" placeholder="Nome" required class="ipt_form">
<input type="text" name="tel" placeholder="Telefone" id="tel" required class="ipt_form">
<input type="email" name="email" placeholder="E-mail" required class="ipt_form">
<input type="hidden" name="valparc" value="" />
<!-- This field will receive the copy data -->
<input type="submit" name="submit" value="solicitar cotação" class="ipt_sbmt">
</div>
</form>
推荐阅读
- android - api字符串响应的AES加密在开始时返回额外的字符
- python - 在 Python 中绘制 3D 条件函数
- angular - 在 anuglar 组件 html 文件中出现错误:找不到带有路径的控件
- salesforce - APEX:从内部 pbx 集成到 Salesforce
- android - 使用基于广告服务 UUID 的扫描过滤器扫描 BLE 外围设备
- docusignapi - 在用户签署文件后,我在哪里可以检查 docusign 是否调用了我的重定向 URL?我在哪里可以检查网址是否正确?
- php - PHP json解码数组反向
- docusignapi - 用于将通知/提醒发送到进程内信封的 docusign REST API
- c# - 设置父级时是否可以初始化嵌套属性?
- python-3.x - Pandas:使用 DataFrameGroupBy.filter() 方法选择 DataFrame 的行,其值大于相应组的平均值