0

所以我有一个带有问题的表格,每个问题都有一个值,并且这些值相加得到你的“ score”。分数显示在输入字段中,当您提交时,它会在输入字段中发送信息(分数以及姓名和电子邮件)。我遇到的问题是,即使“ score”字段在视觉上更新,它也不会在字段中发送信息。我尝试同时使用.attrand.val和都更新字段但不发送值。

$("input[name=score]").attr('value', score);

$("input[name=score]").val(score)

我让它发送信息的唯一方法是当我手动输入值时,所以我知道它的一部分正在工作,只是没有看到 jquery 填写的值。

更新: 这是进行计算的完整代码

$(document).ready(function(){

function calcscore(){
var score = 0;
$(".hs-input:checked").each(function(){
    score+=parseInt($(this).val(),10);
});
$("input[name=score]").attr('value', score);
}
$().ready(function(){
$(".hs-input").change(function(){
    calcscore()
});

$("input[name=score]").prop("readonly", true);

});

}); //结束文档rdy

表格很长,但有问题的字段是:

<input class="hs-input score" type="text" name="score" /><br>

我正在使用 HubSpot 提交表单,所以我无法真正看到他们收到了什么,只有分数是空白的,除非我删除“只读”并手动输入该字段。

4

2 回答 2

2

只是想让大家知道我想通了,我需要在表单创建中添加以下内容,以便在提交之前更新值:

onFormSubmit($form){
    $('input[name="score"]').val(sum).change();
}

最后的.change()部分很重要,需要更新 hubspot 的表单字段。

于 2015-10-28T13:36:23.250 回答
1

这是一个由 jquery 更改并显示在控制台中的值的功能演示.serialize()

$(document).ready(function() {
    $('.changeScore').on('click', function() {
    	$("input[name=score]").val('99');
    });
	
    $('.submit').on('click', function() {
    	var data = $('form').serialize();
        console.log(data);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <input name="score" />
</form>
<button class="submit">Submit</button>
<button class="changeScore">change score</button>

于 2015-10-27T19:22:28.103 回答