Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript函数中从下拉表单调用多个用户选择_Javascript_Forms_Function - Fatal编程技术网

在javascript函数中从下拉表单调用多个用户选择

在javascript函数中从下拉表单调用多个用户选择,javascript,forms,function,Javascript,Forms,Function,我在自学如何编码。我不知道如何从一个HTML下拉表单中获取多个值,并通过javascript.formattributes直接将它们输入到一个预定义的函数中 <form action="mywebsite.html"> <p> Month </p> <select name="Bmonth"> <option value="1">January</option> <option value="2">

我在自学如何编码。我不知道如何从一个HTML下拉表单中获取多个值,并通过javascript.formattributes直接将它们输入到一个预定义的函数中

<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>

我只想将用户提供的三个值输入函数DOBBmonth、Bdom、Byear;如果我像这样运行代码,它会说Bmonth未定义。

首先将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>

谢谢

您还可以使用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>

通过进一步的调整,添加一个按钮来触发DOB函数,并使用id代替name:

你的JS函数在哪里?请包括这一点,我不明白这有什么关系。这个函数很长,但是运行起来很干净。我会放一个简化的版本在里面。非常感谢。这确实有效。您能为我指出正确的方向吗?这样我就可以更好地理解代码,以便能够正确地使用jquery?推荐参考资料?我会选择jQuery的官方网站。他们有一个学习中心和一个API文档:这是我在jQuery中使用最多的资源。我在示例中使用的是id选择器和属性相等选择器、val函数和click binder函数。很高兴我能帮上忙:另外,别忘了将你喜欢的答案标记为已接受,并对你喜欢的答案进行投票:
<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>