设置jQuery脚本

时间:2016-07-08 17:07:43

标签: php jquery html

我需要获取具有jQuery脚本值的输入的$_POST值,但出于某种原因,当我尝试var_dump整个$_POST时,字段{ {1}}(具有脚本值的那个)根本不输出任何内容。

以下是您未成年人的一些代码:

jQuery代码:

amount

这是html:

$(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));

该功能很简单,它在选择时将每列的值相加,然后在输入上打印总值。

问题是当我在提交表单后尝试使用通用<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> 捕获输入的总值时,它会打印一个空字段......

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我认为有两个错误。

第一次:更新#amount2的行超出了update()功能。
第二:此行失败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>";
}

答案 1 :(得分:0)

解决方案很简单,只需选择输入名称,而不是选择输入的ID。

之前:

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

后:

$("input[name=amount]").val("R$"+amount2.toFixed(2));

这将获得标记名称,$_POST将正常工作。