JQuery Buttons 加上变量值填充文本表单

Posted

技术标签:

【中文标题】JQuery Buttons 加上变量值填充文本表单【英文标题】:JQuery Buttons plus variable value populate text form 【发布时间】:2021-10-17 14:06:37 【问题描述】:

我正在努力获得一个带有 3 个按钮的简单表单,以将它们的值添加到变量中并将结果输出到文本框中。我已经尝试了几件事,但没有运气,请如果有人能告诉我我做错了什么。

<body>
    
      $curr_price = 4000; 
    
        
    <br>
    <hr/><form>
        <input type="text" name="result_test" id="result-c" value=""> 
        <input type="reset" value="Reset">
        <br>
        
        <input class="btn" type="button" name="value1" value=" 500" id="btnone" title="your-tooltip-here">
        <input class="btn" type="button" name="value1" value="1000" id="BtnTwo">
        <input class="btn" type="button" name="value2" value="1500" id="BtnThree">
    </form>
    
    
</body>
 <script>

    $('.btn').on('click', function(e) 

        e.preventDefault();

        // Get val of btn
        let a = parseInt( $( this ).val() );

        // Get val of form imput
        var b = parseInt('<?=$curr_price; ?>');

        // Sanity check on b to make sure we are working with a number
        if ( isNaN( b ) )
            b = 0;

        // Do the addition and place value in form input
        $( '#result-c' ).val( a + b );

    );



    </script

【问题讨论】:

$curr_price = 4000; ?为什么这没有包含在 php 标签中?另外,为什么你需要在 PHP 值的前端代码中进行“健全性检查”? 嗨@RokoC.Buljan。我也尝试将它包装在 PHP 标记中,结果相同。如果我删除健全性检查,它会在文本字段中返回带有变量名称的按钮的值。例如 1000$curr_price。我只是不知道如何获取 jQuery 脚本来获取变量的值。你有什么建议吗。 按钮没有值。为此使用输入文本/数字 【参考方案1】: 包装成 PHP 标记 导入 jQuery 库

index.php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <?php
    $curr_price = 4000;
    ?>

    <hr />

    <form>
        <input type="text" name="result_test" id="result-c" value="">
        <input type="reset" value="Reset">
        <br>

        <input class="btn" type="button" name="value1" value=" 500" id="btnone" title="your-tooltip-here">
        <input class="btn" type="button" name="value1" value="1000" id="BtnTwo">
        <input class="btn" type="button" name="value2" value="1500" id="BtnThree">
    </form>
</body>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

<script>
    $('.btn').on('click', function(e) 

        e.preventDefault();

        // Get val of btn
        let a = parseInt($(this).val());

        // Get val of form imput
        var b = parseInt('<?= $curr_price; ?>');

        // Sanity check on b to make sure we are working with a number
        if (isNaN(b))
            b = 0;

        // Do the addition and place value in form input
        $('#result-c').val(a + b);

    );
</script>

</html>

【讨论】:

谢谢@Roko,但这正是我的问题。您发布的代码只返回按钮的值,而不是计算结果。 @RoelfKeulder 那么当我点击按钮时会发生什么?总是加? (目前它用新的 4000+button 值替换旧值) 那么,PHP的$curr_price是4000,按这个顺序点击按钮后应该是什么结果:1、2、3、2、1? @RoelfKeulder $curr_price 是一个变量,因此对于不同的产品它是不同的,我只使用 4000 作为示例,按钮值是 1500、1000 和 500。因此,如果您在我的示例中按下按钮 1 1500 的值和我的 $curr_price 值在那个阶段是 4000 文本框中的结果应该是值 5500 的计算,这是在那个阶段的变量 $curr_price 的计算 4000 + 1500 按钮的值.如果单击按钮 2,它应该是 4000 + 1000,它应该在文本框中显示 5000,当按下按钮 3 时,它应该显示 4000 + 500。 您所描述的正是上述工作原理。 @RoelfKeulder。似乎您没有在 PHP 服务器上运行上述内容 - 因为它使用 PHP 标签。打开终端,运行php -S localhost:8080(从 index.php 文件所在的文件夹)并在浏览器中访问 localhost:8080。看?它有效。【参考方案2】:

@cloned 我认为按钮值不是问题,而是它没有正确导入脚本的变量值。如果我必须将脚本中的最后一个更改为 'code' $('#result-c').val(a + 4000);我的计算工作正常。

【讨论】:

以上是关于JQuery Buttons 加上变量值填充文本表单的主要内容,如果未能解决你的问题,请参考以下文章

如何根据变量值“n”自动填充单元格

jquery“动画”变量值

jQuery全局变量值超出功能[重复]

在 JQuery 中调用/获取 php 变量值

jQuery - 用变量值替换文本中的单词

jQuery在数组中拆分变量值