【问题标题】:Inserting select box text into database将选择框文本插入数据库
【发布时间】:2013-03-27 21:16:46
【问题描述】:

我知道以前有人问过这个问题,但是我找不到解决问题的方法。

我有一个包含三个选项和三个值的选择框,这些值用于使用 JS 执行一些计算,因此我无法更改这些以匹配选项文本。这是为了计算增值税的金额。

我的选择如下所示:

<select name="tax" id="tax" class="select">
<option value="20">Standard 20%</option>
<option value="0">Zero 0%</option>
<option value="0">Exempt 0%</option>
</select>

这很好,但是我需要将文本而不是值插入数据库,因为它需要在后端查看。我尝试了一个javascript函数来向选择框添加一个隐藏的输入,该输入针对的是选择的选项,但这有点错误,而且看起来不正确。我想在从数据库中检索到值时在值旁边显示文本,但是我无法区分这两个 0 金额。

有人可以提供一些进一步的解决方案,最好的方法。

非常感谢

【问题讨论】:

  • 您是否使用 AJAX 将其写入数据库?
  • 您可以使用data 属性来保存您的计算值,并使用value 属性来保存您要存储的值。

标签: javascript jquery html


【解决方案1】:

您可以使用jQuery获取所选选项的文本,如下所示:

$("#tax option:selected").text();

您可以在 AJAX 请求中轻松使用它来向数据库发送正确的值,只需将其分配给一个变量:

var the_text = $("#tax option:selected").text();

如果做不到这一点,为什么不直接在 JS 计算中进行查找 - 它会让你的生活变得如此轻松:

<select name="tax" id="tax" class="select">
    <option value="standard">Standard 20%</option>
    <option value="zero">Zero 0%</option>
    <option value="exempt">Exempt 0%</option>
</select>

你的 JS 可能看起来像这样:

var vat_amount = ($('#tax').val() == 'standard') ? 20 : 0;

【讨论】:

  • 非常感谢 BenM。我在 JS 计算中实现了查找,现在它在选择下拉项时正确传递了值,(并且计算正确)如:run : function() { var amount = $('#net-price-1' ).val(); var tax = ($('#tax1').val() == 'standard') ? 20:0; var tax = ($('#tax1').val() == 'zero') ? 0:0; var tax = ($('#tax1').val() == 'exempt') ? 0 : 0;
  • 我忘了提及更改每个税额的变量名称,var tax,var tax1 等。
【解决方案2】:

您可以使用 html() 函数通过 JS 检索文本。或者,如果您只是使用 POST 将数据发送到服务器,请尝试将这两个值添加到选项的 value 属性中,然后在服务器端拆分它以获得正确的数据。

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    相关资源
    最近更新 更多