【问题标题】:using dropdown label to validation other dropdown value使用下拉标签验证其他下拉值
【发布时间】:2018-01-29 22:42:52
【问题描述】:

我有两个下拉菜单:

<select name="first_value" id="first_value">
    <option value="<?php print"$sum_jan" ?>">January</option>
    <option value="<?php print"$sum_feb" ?>">February</option>
    <option value="<?php print"$sum_mar" ?>">March</option>
    <option value="<?php print"$sum_apr" ?>">April</option>
    <option value="<?php print"$sum_may" ?>">May</option>
    <option value="<?php print"$sum_june" ?>">June</option>
    <option value="<?php print"$sum_july" ?>">July</option>
    <option value="<?php print"$sum_aug" ?>">August</option>
    <option value="<?php print"$sum_sept" ?>">September</option>
    <option value="<?php print"$sum_oct" ?>">October</option>
    <option value="<?php print"$sum_nov" ?>">November</option>
    <option value="<?php print"$sum_dec" ?>">December</option>
</select>

<select name="month" id="month">
    <option>January</option>
    <option>February</option>
    <option>March</option>
    <option>April</option>
    <option>May</option>
    <option>June</option>
    <option>July</option>
    <option>August</option>
    <option>September</option>
    <option>October</option>
    <option>November</option>
    <option>December</option>
</select>

这些下拉菜单的 JavaScript:

function validateForm() {
  var a = document.forms["myForm"]["first_value"].value;
  var b = document.forms["myForm"]["month"].value;
  var c = document.forms["myForm"]["sec_value"].value;

  if (a != b) {
    alert("Month isn't Same");
    $("#month").focus();
    return false;
  } else {
    if (c == "") {
      alert("Recently sold item empty");
      $("#sec_value").focus();
      return false;
    }
  }
}

我一直在尝试为 first_value 添加标签(即label="January" 等), 或两者兼而有之,将.value 更改为.label,或在验证脚本中使用.option,但仍然不起作用。即使first_value.labelmonth.label 不匹配,它也会顺利通过。

我需要在我的表单中使用first_value 值来发布sum_valuemonth 来发布月份。

稍后在操作表单中我希望它变成这样:

$first_value=$_post['first_value'];
$sec_value=$_post['sec_value']
$final_value=$fist_value+$sec_value
$month = month

如果我不使用验证,我认为它已经完成了,没有什么可做的了,但是 我仍然需要它与用户想要选择的月份匹配,以更新数据。 first_value 是当月所有数据的总和,当更新过程起作用时,它实际上是在更新正确的月份,以防有人选择了错误的月份。

【问题讨论】:

  • 你在哪里调用 validat.... 函数,还是按原样保存在脚本标签中?使用 javascript 语法 document.forms["myForm"]["first_value"].value; 的任何特定原因你可以在哪里使用 $("#first_value").val()
  • 是的,它保存在脚本标签中。没有任何具体原因,因为这是我唯一知道的,我一直在尝试为学校项目制作完整的工作场所。这个问题是最后一个,一直在google上搜索,没有找到类似的,所以我决定在这里发布它
  • 除非您在任何活动中调用它,否则它不会起作用?说出任何按钮点击事件或表单提交,
  • 不,我做的任何事情/更改 .value / .label / .option 它都不起作用,即使 first_value 和月份不匹配,它也只是通过验证

标签: javascript php validation dropdown


【解决方案1】:

显示如何调用验证函数的示例 html,也可以防止默认表单提交。

注意:您必须根据您的要求进行更改,我试图解释如何调用验证函数

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function validateForm(e) {

e.preventDefault();//change

var a = document.forms["myForm"]["first_value"].value;
var b = document.forms["myForm"]["month"].value;
var c = document.forms["myForm"]["sec_value"].value;

if (a != b) {
   alert("Month isn't Same");
   $("#month").focus();
   return false;
}else{
   if (c == "") {
   alert("Recently sold item empty");
   $("#sec_value").focus();
   return false;
    }
  }
}
</script>
$(document).ready(function(){
    $("form").submit(function(e){
        validateForm(e);// your function
    });
});
</script>
</head>
<body>

<form id="myForm" action=""><!--your form, you should add your elements in form-->
  <!--your select boxes should be placed here-->
  <input type="submit" value="Submit">
</form> 

</body>
</html>

【讨论】:

  • 我已经知道如何调用验证我问的是什么,我应该做什么或改变所以我的验证工作
    此处的文本字段/文本区域/下拉列表
  • 或者如果你有关于此类问题的相关教程,请告诉我。我会做研究
  • 请提供完整的 html,同时确保您使用以下语法防止默认表单提交 onsubmit="return validateForm(e)", e.preventDefault();
  • 您的表单正在执行默认提交,因此绕过了验证。
  • 这里是完整但不完整的代码paste.ofcode.org/FDmp2sn3vWnEHWjZ4VaRfL我删除了除该表单之外的其他行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
相关资源
最近更新 更多