如果值大于一个php javascript,则阻止提交

如果值大于一个php javascript,则阻止提交,javascript,php,if-statement,submit,Javascript,Php,If Statement,Submit,如果所有select值之和大于一,我想禁用提交。如果值小于1,则通过 <?php $options = array( "0.00","0.05","0.10","0.15","0.20","0.25","0.30","0.35","0.40","0.45","0.50","0.55","0.60","0.65","0.70","0.75","0.80","0.85","0.90","0.95","1" ); // ◄■■ OPTIONS ARE STATIC (ALWAYS TH

如果所有select值之和大于一,我想禁用提交。如果值小于1,则通过

    <?php 
$options = array( "0.00","0.05","0.10","0.15","0.20","0.25","0.30","0.35","0.40","0.45","0.50","0.55","0.60","0.65","0.70","0.75","0.80","0.85","0.90","0.95","1" ); // ◄■■ OPTIONS ARE STATIC (ALWAYS THE SAME).
while ( $row_menuid = mysqli_fetch_array( $dat_menuid ) ) // ◄■ DISPLAY 
    <SELECT>
    s.
{ echo "
<select name='corp_resp&{$row_menuid['menuId']}&{$_SESSION['UtilizadorID']}&{$dateTime}&{$toEchosave}'>\n"; // ◄■■ CORP_RESP&1,CORP_RESP&2.
 foreach ( $options as $opt ) // ◄■■ DISPLAY OPTIONS.
     echo "<option value='$opt'>$opt</option>\n";
 echo "</select>
\n"; // ◄■■ SELECT END.
}
?>
<br>
<br>
<br>
<br>
<script>
    $('select').change(function(){
        var sum = 0;
        $('select :selected').each(function() {
            sum += Number($(this).val());
        }
                                  );
        $("#sum").html(sum);
        if (sum > 1) {
            alert('Block!')
        }
        else {
            alert('Give the value !')
        }
    }
                      );
</script>
<?php
if ($idfilho == 1) 
{
    echo "<td align=\"center\"  bgcolor='FFFFFF'>   <a href='avaliacoes2.php?menuId=".$id."'>Seleccionar</a> </td>";
}
else
{
    echo "";
}
echo    '</tr>';
}
}
echo"</table>";
echo "<div id='sum'>SUM OF SELECTED OPTIONS</div>";
echo "<br><br><br>";
echo ('<input type="submit"  value="Submeter" class="link-style2"  />'); ?>

希望有帮助


希望有帮助

将提交事件处理程序附加到所讨论的表单中,然后在该处理程序中使用与更改事件类似的代码。如果金额太大,请取消提交并显示消息,否则不执行任何操作:

$('#idOfYourFormHere').on('submit', function(e) {
  var sum = 0;
  $('select :selected').each(function() {
    sum += Number(this.value);
  });
  $("#sum").html(sum);

  if (sum > 1) {
    e.preventDefault();
    alert('You cannot submit unless the sum of your selections is less than or equal to 1.');
  } // else do nothing and submit will continue
});

请注意,您不需要更改处理程序,除非您希望显示正在运行的总计,只要在用户尝试提交时重新计算总计即可。

将提交事件处理程序附加到相关表单,然后在该处理程序中使用与您为更改事件显示的代码类似的代码。如果金额太大,请取消提交并显示消息,否则不执行任何操作:

$('#idOfYourFormHere').on('submit', function(e) {
  var sum = 0;
  $('select :selected').each(function() {
    sum += Number(this.value);
  });
  $("#sum").html(sum);

  if (sum > 1) {
    e.preventDefault();
    alert('You cannot submit unless the sum of your selections is less than or equal to 1.');
  } // else do nothing and submit will continue
});


请注意,您不需要更改处理程序,除非您希望显示正在运行的总数,只要在用户尝试提交时重新计算总数即可。

禁用提交按钮(让用户不知道如何重新启用它)的意义上的“阻止提交”或“阻止提交”如中所示,让用户按“提交”按钮,然后显示一条消息并在该点停止提交?@nnnn如果值大于1,则单击“提交”按钮时,该点不可能。并给出一条您无法提交的消息,因为该值大于1。请记住,您为限制表单提交而实现的任何客户端(javascript)解决方案都很容易规避,不应依赖它来确保提交有效的输入。在进行任何进一步处理之前,由服务器端(PHP)确认任何提交的用户数据是否有效,客户端验证只应被视为可用性验证aid@GordonM,怎么做?我需要这样做吗?在submit php上设置条件,如何获取sum的值并转换为php变量来执行此操作?“阻止提交”的意思是禁用提交按钮(让用户想知道如何重新启用它),或“阻止提交”如中所示,让用户按“提交”按钮,然后显示一条消息并在该点停止提交?@nnnn如果值大于1,则单击“提交”按钮时,该点不可能。并给出一条您无法提交的消息,因为该值大于1。请记住,您为限制表单提交而实现的任何客户端(javascript)解决方案都很容易规避,不应依赖它来确保提交有效的输入。在进行任何进一步处理之前,由服务器端(PHP)确认任何提交的用户数据是否有效,客户端验证只应被视为可用性验证aid@GordonM,怎么做?我需要这样做吗?在提交php时做一个条件,如何得到sum的值并转换成php变量来完成这个任务?兄弟!我喜欢你的答案,因为它简单,避免重复+我为此向你道歉。但根据他的代码,似乎他每次选择一个选项时都需要显示计算的
sum
。所以,他需要
change
事件处理程序。@Perumal93-是的,我刚刚注意到了这一点。所以你的回答更能说明问题..兄弟!我喜欢你的答案,因为它简单,避免重复+我为此向你道歉。但根据他的代码,似乎他每次选择一个选项时都需要显示计算的
sum
。所以,他需要
change
事件处理程序。@Perumal93-是的,我刚刚注意到了这一点。所以你的答案涵盖得更好。问题是提交在JavaScript之外。回声(“”);我不明白你的意思。你能说得具体一点吗?我尝试了你告诉我的代码,但不起作用。我提交了相同的,并且没有显示随着选择选项上的值而增加的总和。您的代码中是否实际添加了
表单
?我在您的代码中没有看到任何
表单
标记。是我用的。重定向到另一个页面进行do统计。问题是提交在JavaScript之外。回声(“”);我不明白你的意思。你能说得具体一点吗?我尝试了你告诉我的代码,但不起作用。我提交了相同的,并且没有显示随着选择选项上的值而增加的总和。您的代码中是否实际添加了
表单
?我在您的代码中没有看到任何
表单
标记。是我用的。重定向到do统计信息的另一页。
$('#idOfYourFormHere').on('submit', function(e) {
  var sum = 0;
  $('select :selected').each(function() {
    sum += Number(this.value);
  });
  $("#sum").html(sum);

  if (sum > 1) {
    e.preventDefault();
    alert('You cannot submit unless the sum of your selections is less than or equal to 1.');
  } // else do nothing and submit will continue
});