Web Analytics Made Easy -
StatCounter Detect an alert... - CodingForum

Announcement

Collapse
No announcement yet.

Detect an alert...

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Detect an alert...

    Is it possible to detect if an alert box is opened?

  • #2
    Did you open one? If an alert box is open, your code will wait until it is closed before it does anything else. Explain more of what it is you are trying to accomplish.

    Comment


    • #3
      ...

      Well your right... wow I'm tired!

      I have an onchange event which contains a function that check the syntax.
      Then another function is added dynamically to this event to make a dynamic calculation.
      So if a user enter a wrong type of value the alert appears but when he click "OK", the second function is called and I don't want that. So how can I do that?

      In a simple case, I would have tested if the first function returns true and then call my second function but it's a little more complicated here. A solution should be to dynamically modify the first function to make a test on it but this seems complicated....
      For the moment I don't even know how to add dynamically a second function to my event so (problem posted today)....

      HELP!!!

      Comment


      • #4
        In the open code before and outside of your functions put

        MyCorrectValue = false;

        In the function where they have entered the correct value put

        MyCorrectValue = true;

        In the function where you put the alert put

        MyCorrectValue = false;

        In the function where the user clicks ok put

        if (MyCorrectValue) { // This means the variable is true
        call the 2nd function;
        } else {
        } // This means do nothing

        Comment


        • #5
          The above way aparently throws a warning in Mozilla. Don't hold me to this but I believe it's the old way of doing it. I think you need to decide between code bloat and catering to (for now) Mozilla.

          This method was given to me in the old forum by another member. It keeps the variables inside the functions. Here is 2 examples.

          <html>
          <head>
          <title>untitled</title>
          <script type="text/javascript" language="JavaScript">

          function first() {
          alert('first running');
          first.done = true;
          }

          function second() {
          if (typeof first.done == 'undefined') return;
          alert('second running');
          }

          </script>
          </head>
          <body>
          <a href="javascript: void first()">Run First Function</a><br>
          <a href="javascript: void second()">Run Second Function</a>
          </body>
          </html>




          <html>
          <head>
          <title></title>
          <script type="text/javascript" language="JavaScript">

          function first() {
          //set property if calling this for first time, otherwise leave alone
          if (typeof first.msg == 'undefined') first.msg = 'first running';
          alert(first.msg);
          second.enabled = true;
          }

          function second() {
          if (typeof second.enabled == 'undefined') second.enabled = false;
          if (!second.enabled) return;
          alert('second running');
          }

          function enableDisable() {
          //if defined & true set to false otherwise do both
          second.enabled = (typeof second.enabled != 'undefined' && second.enabled == true) ?
          false : true;
          }

          function modify() {
          if (typeof first.msg == 'undefined') first.msg = 'first running';
          first.msg = prompt('Message in first()?', first.msg);
          }

          </script>
          </head>
          <body>
          <a href="javascript: void first()">Run First Function/Enable Second Function</a><br>
          <a href="javascript: void modify()">Modify First() message</a><br><br><br>
          <a href="javascript: void second()">Run Second Function (only after first)</a><br><br>
          <a href="javascript: void enableDisable()">Disable/Enable Second Function</a>
          </body>
          </html>
          Last edited by Graeme Hackston; Jun 25, 2002, 05:55 PM.

          Comment


          • #6
            ...

            Ok it works good but in my case it's a little bit more complicated:

            I'll explain an example of the behaviour I want to implement:
            I have a form with 3 fields:
            field A : must contain an integer
            field B: must contain an integer
            field C: is the result of a predefined formula, let's say A + B

            If I enter a new value in field A, the result in field C is dynamically updated.
            If I enter a string in field A, an alert shows up and field C is not updated.
            That works, but if I enter a string in field B and then a new integer in field A, the sum function is enabled (but shouldn't!) and logically raises an error because field B is not an integer... So how can I solve this problem???

            HELP!

            Comment


            • #7
              Sorry I'm not familiar with forms, you can't pick them up with variables?

              You can do things like

              if ((fieldA) && (fieldB) && (fieldC==false)) {
              do stuff;
              } else {
              if ((fieldA) == (fieldC)) {
              other stuff;
              }
              }


              I could be wrong on the syntax (maybe a semi-colon after false?) but there are lots of options.

              Comment


              • #8
                Here's a good tutorial I just came across

                Comment


                • #9
                  <html>
                  <head>
                  <title>untitled</title>
                  <script type="text/javascript" language="JavaScript">

                  function update(field) {
                  if (!/^-?\+?\d+$/.test(field.value)) {
                  alert('Please enter an integer value.');
                  field.focus();
                  field.select();
                  } else {
                  var temp = 0;
                  with (field.form) {
                  if (!isNaN(Number(field_A.value))) temp += Number(field_A.value);
                  if (!isNaN(Number(field_B.value))) temp += Number(field_B.value);
                  field_C.value = ' ' + temp;
                  }
                  }
                  }

                  </script>
                  </head>
                  <body>
                  <form>
                  field A <input type="text" name="field_A" onchange="update(this)"><br>
                  field B <input type="text" name="field_B" onchange="update(this)"><br>
                  field C <input type="text" name="field_C" readonly="readonly">
                  </form>
                  </body>
                  </html>

                  I think you're saying 'string' when you mean 'digits'; all form data is stored as strings.

                  Comment

                  Working...
                  X