Javascript 从选择下拉列表中的文本解析数字,以计算数字并将文本和数字保存到DB

Javascript 从选择下拉列表中的文本解析数字,以计算数字并将文本和数字保存到DB,javascript,Javascript,我有一个选择下拉列表,只有一个数字值,但用户会看到附加到金额的服务的描述符 <option value="400">New Report</option> 只要值是纯值,我使用的所有javascript代码都会很好地运行所有的计算和总计 问题是我不知道如何同时保存数字和描述符,所以表单仍然会计算,我知道用户所做的选择 如果我包含稍后将用php解析的文本,将数字从文本中分割出来并保存在DB中的2个字段中,我的计算结果是“NaN”,因为文本出现在值字段中 我曾试图在onch

我有一个选择下拉列表,只有一个数字值,但用户会看到附加到金额的服务的描述符

<option value="400">New Report</option>
只要值是纯值,我使用的所有javascript代码都会很好地运行所有的计算和总计

问题是我不知道如何同时保存数字和描述符,所以表单仍然会计算,我知道用户所做的选择

如果我包含稍后将用php解析的文本,将数字从文本中分割出来并保存在DB中的2个字段中,我的计算结果是“NaN”,因为文本出现在值字段中

我曾试图在onchange事件中以某种方式将数字从文本中分离出来,但没有成功

乙二醇

这个想法是从破折号左边的值中提取


这就是如何解析字符串左边的数字-

设str=123等; 设int=Number.parseIntstr.split-,1[0];
console.logint 我更喜欢在所有选项中创建一个具有选项数值的属性。对于计算,您可以通过获取属性来传递数值。检查以下代码:

    <select id="srv1" name="srv1" onChange="calcexp(this.form, this.options[this.selectedIndex].getAttribute('data-value'));">
        <option value="400-new" data-value="400">New Report</option>
        <option value="500-old" data-value="500">old  Report</option>
    </select>

希望对您有所帮助。

您可以使用数据属性来存储带有html元素的额外文本。您可以在此处阅读有关数据属性的内容

我听不懂你的问题。请简化。您可能需要阅读文档以了解更多信息。此外,str似乎没有在代码中定义。良好的做法是使用数据属性来定制数据,而不是像attr valueThank@pete这样的东西。从现在起,我肯定会遵循这一点。我尝试了“数据值”和“srv1”,但没有拾取值。我还是很喜欢NaN。如果有办法发布“数据值”变量,那么我可以让它工作。你能给我看一下你的代码吗,这样我就可以检查了?我已经检查了我的共享代码,它工作正常。我不想与所有其他执行计算的代码对抗,所以我使用了此示例,它现在可以工作了选择新报表$'srv1'。changefunction{var service=$this.find'option:selected.attr'data-service';$'service.valservice;};然后:$service=$_POST['service'];
 <option value="400-New Report">New Report</option>
    <select id="srv1" name="srv1" onChange="calcexp(this.form, this.options[this.selectedIndex].getAttribute('data-value'));">
        <option value="400-new" data-value="400">New Report</option>
        <option value="500-old" data-value="500">old  Report</option>
    </select>