Javascript警告框和确认后

时间:2012-12-14 04:57:46

标签: php javascript

我想创建一个用于检查文本框值的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(并转到下一页)。那么,如何改变这个条件,所以我的确认框首先显示,然后点击确定,它转到下一页,如果取消,什么都不做?

6 个答案:

答案 0 :(得分: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);" />

当你的文本框为空或空时写event.preventDefault()而不是return 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();     }

答案 1 :(得分:0)

我建议您将 cekdata(this)放在提交标记而不是表单标记中。喜欢

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

答案 2 :(得分:0)

试试这个:

删除最后其他部分,然后在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;
}

答案 3 :(得分: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;
        }
  }
}

那么它有效......

答案 4 :(得分:0)

我建议使用Javascript的Jquery insead。

这是短片&amp;我为你做的甜蜜代码,随意使用它!

JQUERY CODE

$(document).ready(function() {
  $('#submit').click(function(){
     var id = $('#id').val();
     var dataString = 'id='+ id;
     if(id==''){
        alert("Please Fill Your ID");
        $('#id').focus();
        return false;  
         }
     else if(confirm("Are you sure? Your id = "+id))
        {
          $.ajax({
          type: "POST",
          url: "ajxRegistration.php",
          data: dataString,
          cache: false,
          success: function(e)
           {
          e.stopImmediatePropagation();
           }
     });
      return false;
    }
    });
})

答案 5 :(得分:0)

试试这个 -

if(confirm('Are you sure?'))
    return true;
 else
    return false;