设置来自jQuery脚本的输入值

费利佩·S·古德

我需要$_POST从jQuery脚本获取具有输入值的输入的值,但是由于某种原因,当我尝试对var_dump整个$_POST字段进行操作时,该字段amount(从脚本中获取值的字段)根本什么也不输出。

这是您不了解的一些代码:

jQuery代码:

$(document).ready(function(){
    update();
});

$('input[type=checkbox]').click(function(){
    update();
})

function update(){
    var amount2 = 0;
    var options = 0;
    $('#instNum2 option').remove();
    $('.check_list').each(function () {
        if (this.checked) {
            amount2 += Number($(this).attr("val"));
            options ++;
        }
});

$("#amount2").val("R$"+amount2.toFixed(2));

这是html:

<div class="row control-group">
   <div class="form-group col-xs-12 floating-label-form-group controls">
      <br><h4 style="margin-top: -5px;">Total Selecionado:</h4>
      <input type="text" class="form-control" id="amount2" name="amount">
      <p class="help-block text-danger"></p>
   </div>
</div>

该函数很简单,它将选定的每一列的值求和,然后将总值打印在输入上。

问题是当我尝试在提交$_POST['amount']表单后使用通用捕获输入的总值时,它会打印一个空字段...

有什么想法吗?

路易丝·帕特里斯·贝塞特

我认为有两个错误。

1st:更新的行在函数#amount2外部update()
2nd:此行失败amount2 += Number($(this).val());
您想要此输入的输入值(或修改后的值)...而不是value attribute的值。

区别在于:$(this).attr("val")将返回属性中定义的内容,例如:
<input type="text" class="form-control" id="amount2" name="amount" value="default value">

并且$("#amount2").val()将返回实际值。

你的这个:

function update(){
    var amount2 = 0;
    var options = 0;
    $('#instNum2 option').remove();
    $('.check_list').each(function () {
        if (this.checked) {
            amount2 += Number($(this).val());
            options ++;
        }
        $("#amount2").val("R$"+amount2.toFixed(2));
        console.log($("#amount2").val());
});

我添加了一个console.log,供您检查执行update()功能时是否存在所需的值

根据评论进行编辑

在您的PHP中尝试以下操作:

if (isset($_POST['amount'])){
    echo "$_POST['amount'] is set.<br>";
    echo "It's value is: x" . $_POST['amount'] . "x";   // if it is empty, you'll get "xx" echoed.
}else{
    echo "$_POST['amount'] is NOT set.<br>";
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章