2015-09-07 53 views
0

我在教自己如何编写代码。我无法弄清楚如何采取从HTML多个值通过javascript下拉菜单形式,直接输入他们到一个预定义的功能。(表格属性?)从javascript函数中的下拉窗体调用多个用户选择

<form action="mywebsite.html"> 
<p> Month </p> 
<select name="Bmonth"> 
    <option value="1">January</option> 
    <option value="2">February</option> 
    <option value="3">March</option> 
</select> 

<p> Day </p> 
<select name="Bdom"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

<p> Year </p> 
<select name="Byear"> 
    <option value="2015">2015</option> 
    <option value="2014">2015</option> 
    <option value="2013">1988</option> 
</select></form> 

<script> 
function DOB(Bmonth, Bdom, Byear) { 
var z=Byear-Bmonth*Bdom; 
    return window.alert("Your number is " +z); 
} 
DOB(Bmonth, Bdom, Byear); 
</script> 

我只是想取三个值的用户提供并输入到DOB(Bmonth,Bdom,Byear)函数中;如果我像这样运行代码,它会显示“Bmonth未定义”。

+0

哪里是你的JS功能?请包括那也 – Thangadurai

+0

我不明白为什么它很重要。该功能相当长,但它运行干净。 – CJW

+0

我将为大致的想法提供一个简化版本。 – CJW

回答

0

你也可以使用JavaScript框架或库,将让您的生活更轻松。例如,使用jQuery你会适应你的代码如下所示:

<form action="mywebsite.html"> 
<p> Month </p> 
<select name="Bmonth"> 
    <option value="1">January</option> 
    <option value="2">February</option> 
    <option value="3">March</option> 
</select> 

<p> Day </p> 
<select name="Bdom"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

<p> Year </p> 
<select name="Byear"> 
    <option value="2015">2015</option> 
    <option value="2014">2015</option> 
    <option value="2013">1988</option> 
</select></form> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script> 
function DOB(Bmonth, Bdom, Byear) { 
    var z=Byear-Bmonth*Bdom; 
    return window.alert("Your number is " +z); 
} 
DOB(
    $('[name="Bmonth"]').val(), 
    $('[name="Bdom"]').val(), 
    $('[name="Byear"]').val() 
); 
</script> 

并与一些进一步tweakings(添加一个按钮来触发DOB功能和使用IDS的替代名称):http://jsfiddle.net/neewonej/

+0

哇。非常感谢。这真的很有用。你能指出我的方向是否正确,以便我可以更好地理解代码,以便正确使用jQuery?推荐参考? – CJW

+0

我会去官方jQuery的网站。他们有一个学习中心(http://learn.jquery.com/)和一个API文档:http://api.jquery.com/,这是我最常用的jQuery资源。我在示例中使用的东西是id选择器(http://api.jquery.com/id-selector/)和属性相等选择器(http://api.jquery.com/attribute-equals-selector/) ,val函数(http://api.jquery.com/val/)并单击绑定函数(http://api.jquery.com/click/)。很高兴我可以帮助:) – Daniel

+0

此外,不要忘记标记你的首选答案为接受和upvote你赞赏:) – Daniel

0

首先将name =“”更改为id =“”以使javascript选择更简单。它看起来像这样:

<form action="mywebsite.html"> 
<p> Month </p> 
<select id="Bmonth"> 
    <option value="1">January</option> 
    <option value="2">February</option> 
    <option value="3">March</option> 
</select> 

<p> Day </p> 
<select id="Bdom"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

<p> Year </p> 
<select id="Byear"> 
    <option value="2015">2015</option> 
    <option value="2014">2015</option> 
    <option value="2013">1988</option> 
</select></form> 

你需要得到选择框的使用tempElement =的document.getElementById(“Bmonth”)手柄tempElement变量。然后使用tempElement.selectedIndex获取选定的索引,并使该索引从tempElement.options中检索值。使用tempElement.options [tempElement.selectedIndex] .value获取用户选择的值,否则使用tempElement.options [tempElement.selectedIndex] .text来获取选定的文本。

这里是工作的javascript代码:

function DOB(Bmonth, Bdom, Byear) { 
    var z=Byear-Bmonth*Bdom; 
    return window.alert("Your number is " +z); 
} 
var tempElement = document.getElementById("Bmonth"); 
Bmonth = tempElement.options[tempElement.selectedIndex].value; 

tempElement = document.getElementById("Bdom"); 
Bdom = tempElement.options[tempElement.selectedIndex].value; 

tempElement = document.getElementById("Byear"); 
Byear = tempElement.options[tempElement.selectedIndex].value; 

DOB(Bmonth, Bdom, Byear); 

感谢