【问题标题】:Script not working in a Form脚本在表单中不起作用
【发布时间】:2015-08-27 08:35:03
【问题描述】:

我一直在处理这个问题,这是一个非常愚蠢的问题,但我真的不明白为什么当我按下按钮时我的 JavaScript 函数永远不会执行我已经尝试了所有方法,请帮助谢谢!

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <script type="text/javascript">
  function validateForm()
  {
  var jArray= <?php echo json_encode($arr ); ?>;
  var counter= <?php echo json_encode($i ); ?>;
  var productId;
  var productQty;
  confirm(productId + " can not be empty");

   for (i = 0; i < counter; i++) {
    productQty = jArray[1][i];
    productId= jArray[0][i];

     if (document.getElementById("register").elements.namedItem("productId").value !== productQty) {
  confirm(productId + " can not be empty");

     }
   }
 }

</script>


<script type="text/javascript">
  function myFunction1() {
   alert("Hello! I am an alert box!");
  }
</script>

 </head>
 >
 <body>

  <!-- Latest compiled and minified CSS -->
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

 <!-- Optional theme -->
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">

   <!-- Latest compiled and minified JavaScript -->
   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

<?php

  $code1 ="";
  $exeption="";
  $s="";
  session_start(); 
  $arr=array();

  $con = mysqli_connect('localhost','root','','customer_service_experts');

   if (!$con) {
     die('Could not connect: ' . mysqli_error($con));
   }

    $empId= $_SESSION['eId'];
    $sql2= "SELECT locationId FROM location_user where empId='".$empId."' and active ='1'";
    $result2 = mysqli_query($con,$sql2);

        while($row = mysqli_fetch_array($result2)){
           $code1 = $row["locationId"];
        }

    mysqli_select_db($con,"customer_service_experts");
    $sql="SELECT * FROM location_product where productLocation=$code1";
    $result = mysqli_query($con,$sql);


    echo "

      <form  action='productInventoryEmp.php' method='POST' id='register'>
    <div class='form-group col-md-5'>

       ";


      $i=0;

      while($row = mysqli_fetch_array($result)) {
        $arr[1][$i]=$row['productQty'];
        $arr[0][$i]=$row['productId'];
        $sql1="SELECT productName FROM product where productId='".$row['productId'] ."' limit 1 ";
        $result1 = mysqli_query($con,$sql1);

        if($result1!=false){
            while($row = mysqli_fetch_array($result1)){
            $code = $row["productName"];
             echo " <div class='input-prepend'>";
             echo "<span class='add-on' >".$code."</span>";
            }

             echo "<input type='number' min='0' step='1' data-bind='value:replyNumber' class='span2' id=" . $row['productId'] . "/>";
              echo "</div>";
        }else {
              $s="1";
                $exeption="There are no Products for  in this location!";
        }
     echo "<br>"; 
     echo "<br>";                
     $i++;                
  }
    $_SESSION['ArrayCount']=$i; //counter
    $_SESSION['ArrayProduct']=$arr; // ID Product y Qty

   if ($s=="1") {
    echo $exeption;
   }
?>

 </div>

 <div class="col-md-6">
 <div class="form-group">
 <label for="comment">Note:</label>
   <textarea class="form-control" rows="5" id="comment"></textarea>
 </div>
 <button type="submit" class="btn btn-default"    onclick="validateForm()">Cancel</button>
 <button type="submit" class="btn btn-default" onsubmit="myFunction1()">Save and Start Shift</button>

 </div>
 </form>

<?php
 mysqli_close($con);
 ?>
</body>
</html>

【问题讨论】:

  • Javascript 控制台有错误吗?
  • 您在脚本的开头回显了json_encode($arr)json_encode($i),但直到脚本后面才设置变量。
  • 不是我知道我只是想使用我的警报功能,但它不显示
  • 什么意思?打开控制台时,要么看到错误,要么没有。
  • 在设置ProductId 之前,您还需要执行confirm(productId + "can not be empty")。这有什么意义?

标签: javascript php html function button


【解决方案1】:

您的按钮提交表单。这就是为什么你的函数永远不会执行的原因。

<button type="button" class="btn btn-default" onclick="validateForm()">Cancel</button>
<button type="button" class="btn btn-default" onclick="myFunction1()">Save and Start Shift</button>

然后将 id 设置为您的表单

<form id="myform" action="..">

在你的函数的最后,如果你想提交表单,设置

$('#myform').submit();

不要忘记包含 jquery 库。 希望它有效!

【讨论】:

  • 我在哪里可以获得 jquery 库?
  • $('#myform').submit(); - 这适用于 jquery 库,您需要将其包含在您的 html
  • 尝试在关闭正文标签之前移动脚本
【解决方案2】:

改变这个:

 <button type="submit" class="btn btn-default"    onclick="validateForm()">Cancel</button

 <button type="submit" class="btn btn-default" onsubmit="myFunction1()">Save and Start Shift</button> 

到这里:

<input type="submit" class="btn btn-default"    onclick="validateForm()" >Cancel

<input type="submit" class="btn btn-default" id="Save">Save and Start Shift

在您的脚本中:

 $('#Save').on('click', function(){
   myFunction1(); //your function
 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2014-04-12
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多