我想创建一个JavaScript来检查文本框的值,因此,如果文本框为空白,则不会进入下一页。在检查(如果所有条件都为真)之后,AND将返回文本框的结果。

我创建了以下javascript:

function cekdata(myform)
{
    var id = document.myform.clientid.value;
        var nama = document.myform.nama.value;
        var divisi = document.myform.divisi.value;
        var way = document.getElementById('twoway').value;
        var ori = document.myform.lokasi.value;
        var desti = document.myform.tujuan.value;
        var ket = document.myform.keterangan.value;
        var tpergi = document.myform.tglb.value;
        var jpergi = document.myform.jamb.value;
        var mpergi = document.myform.menitb.value;
        var pegi = tpergi+', '+jpergi+':'+mpergi;
        var tplg = document.myform.tglp.value;
        var jplg = document.myform.jamp.value;
        var mplg = document.myform.menitp.value;
        var plg = tplg+', '+jplg+':'+mplg;
  if (document.myform.clientid.value == "")
  {
    alert("Please Fill Your ID");
    myform.clientid.focus();
    return false;
  }
  else
  if (document.myform.nama.value == "")
  {
    alert("Please Fill Passenger Name");
    myform.nama.focus();
    return false;
  }
  else
  if (document.myform.lokasi.value == "")
  {
    alert("Please Fill Origin Location");
    myform.lokasi.focus();
    return false;
  }
  else
  if (document.myform.tujuan.value == "")
  {
    alert("Please Fill Your Destination");
    myform.tujuan.focus();
    return false;
  }
  else
  if (document.myform.tglb.value == "")
  {
    alert("Please Fill Departure Date");
    myform.tglb.focus();
    return false;
  }
  else
  if (document.myform.novehicle.value == "")
  {
    alert("Please Fill Vehicle Number");
    myform.novehicle.focus();
    return false;
  }
  else
  if (document.myform.driverid.value == "")
  {
    alert("Please Fill Driver ID");
    myform.driverid.focus();
    return false;
  }
  else
  if(document.getElementById('twoway').checked)
  {
      if (document.myform.tglp.value == "")
      {
        alert("Please Fill Return Date");
        myform.tglp.focus();
        return false;
      }
      else
      if (document.myform.tglb.value > document.myform.tglp.value)
      {
        alert("Return date must bigger than departure date");
        myform.tglp.focus();
        return false;
      }
  }
  else
  {
        var a = window.confirm("CONFIRMATION :\nID : " +id+"\nName : "+nama+"\nDivision : "+divisi+"\nOne Way : "+way+"\nOrigin : "+ori+"\nDestination : "+desti+"\nNotes : "+ket+"\nDeparture : "+pegi+"\nArrived :"+plg);
        if (a==true)
        {
            return true;
        }
        else
        {
            return false;
        }
  }
}


我这样调用此函数:

<form name="myform" onsubmit="return cekdata(this);" method="POST" action="<?php $_SERVER["PHP_SELF"]; ?>">


但是我得到的是确认框从未显示,并且返回true(然后转到下一页)。因此,如何更改此条件,以便首先显示我的确认框,然后单击“确定”,转到下一页,如果取消,则什么都不做?

最佳答案

*Just make slight changes in your javascript just passevent on form submit*


<input type="submit" value="Submit" name="submit" onClick="return cekdata(this,event);" />


当文本框为空或为null时,请写event.preventDefault()而不是返回false;

function cekdata(myform,evt)
{
var id = document.myform.clientid.value;
    var nama = document.myform.nama.value;
    var divisi = document.myform.divisi.value;
    var way = document.getElementById('twoway').value;
    var ori = document.myform.lokasi.value;
    var desti = document.myform.tujuan.value;
    var ket = document.myform.keterangan.value;
    var tpergi = document.myform.tglb.value;
    var jpergi = document.myform.jamb.value;
    var mpergi = document.myform.menitb.value;
    var pegi = tpergi+', '+jpergi+':'+mpergi;
    var tplg = document.myform.tglp.value;
    var jplg = document.myform.jamp.value;
    var mplg = document.myform.menitp.value;
    var plg = tplg+', '+jplg+':'+mplg;
if (document.myform.clientid.value == "")
{
alert("Please Fill Your ID");
myform.clientid.focus();


evt.preventDefault();
    }

10-07 18:58
查看更多