0

テキストボックスの値をチェックするためのJavaScriptを作成したいので、テキストボックスが空白の場合、次のページに進みません。そして、チェックした後(すべての条件が真の場合)、テキストボックスの結果を返します。

私はこの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 を返す (そして次のページに移動する) ことです。では、確認ボックスが最初に表示されるようにこの条件を変更し、[OK] をクリックすると次のページに移動し、[キャンセル] の場合は何もしないようにするにはどうすればよいでしょうか?

4

6 に答える 6

3
*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の場合は、 return false; の代わりに event.preventDefault() を書き込みます。

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(); }

于 2012-12-14T05:10:14.547 に答える
0

これを試して -

if(confirm('Are you sure?'))
    return true;
 else
    return false; 
于 2012-12-18T10:21:27.067 に答える
0

そのcekdata(this)formタグではなくsubmitタグに配置することをお勧めします。好き

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

そしてまたあなたがこれをしたとき

var id = document.myform.clientid.value;

では、なぜ同じものを再び使用しているのか

if (document.myform.clientid.value == "")

より良い使用

var id = document.myform.clientid;

if (id.value == "")
{
   alert("Please Fill Your ID");
   id.focus();
   return false;
}
于 2012-12-14T05:04:34.197 に答える
0

これを試して:

最後のelse部分を削除し、javascript関数の最後の行の下に貼り付けます。

以下の行を削除します:

var a = window.confirm("CONFIRMATION :\nID : " +id+"\nName : "+nama+"\nDivision : "+divisi+"\nOne Way : "+way+"\nOrigin : "+ori+"\nDestination : "+desti+"\nNotes : "+ket+"\nDeparture : "+pegi+"\nArrived :"+plg);

代わりにこれを使用してください

var a = window.confirm("Are you sure?");

if (a==true)
{
     return true;
}
else
{
     return false;
}
于 2012-12-14T05:04:43.087 に答える
0

次のようにコードを変更します。

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 (id == "")
  {
    alert("Please Fill Your ID");
    myform.clientid.focus();
    return false;
  }
  else
  if (nama == "")
  {
    alert("Please Fill Passenger Name");
    myform.nama.focus();
    return false;
  }
  else
  if (ori == "")
  {
    alert("Please Fill Origin Location");
    myform.lokasi.focus();
    return false;
  }
  else
  if (desti == "")
  {
    alert("Please Fill Your Destination");
    myform.tujuan.focus();
    return false;
  }
  else
  if (tpergi == "")
  {
    alert("Please Fill Departure Date");
    myform.tglb.focus();
    return false;
  }
  else
  if(document.getElementById('twoway').checked)
  {
      if (tplg == "")
      {
        alert("Please Fill Return Date");
        myform.tglp.focus();
        return false;
      }
      else
      if (tpergi > tplg)
      {
        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;
        }
  }
}

それは動作します...

于 2012-12-14T05:31:14.383 に答える