webForumDet fria alternativet

Vad gör denna kod?

JavaScriptur Javascript

5 svar · 225 visningar · startad av G8

Medlem sedan jan. 20011 213 inlägg
Frågan#1

Vad gör denna kod?

<script language="javascript" type="text/javascript">
<!-- hide begin
  function ValidateInput(frm) {
    var msg = "";
    if (!frm.CallerName.value) {
      msg += ' - enter your login name\n';
    } else {
      var chkRegExp = /[^A-Za-z0-9&_]/;
      var isValid = !chkRegExp.test(frm.CallerName.value);
      if (!isValid) {
        msg += ' - provide valid LOGIN NAME, e.g. lastnameab\n';
      }
    }
    if (!frm.CallerDept.value) msg += ' - enter your department\n';
    if (frm.CallerDept.value == 'dummy') msg += ' - select your department\n';
    if (!frm.CallerExt.value) {
      msg += ' - enter your extension\n';
    } else {
      var chkRegExp = /[^x0-9 -]/;
      var isValid = !chkRegExp.test(frm.CallerExt.value);
      if (!isValid) {
        msg += ' - provide valid extension, e.g. 7676 or x7430\n';
      }
    }
    if (!frm.ProblemDesc.value) msg += ' - enter request description\n';
    // E-mail address
    var em = frm.CallerEMail.value;
    // ... empty is allowed - no notifications
    if (em != "") {
      // ... has to end with @domain.com
      if (em.indexOf('@domain.com') == -1) {
        msg += ' - enter your e-mail address\n';
      }
    }

    if (msg.length > 0) {
      alert('Please correct the following:\n\n' + msg);
      return false;
    } else {
      return true;
    }
  }

/*
  function EMailFix(frm) {
    var sEMail=frm.CallerEMail.value;
    if ((sEMail.indexOf('@') == -1) && (sEMail != ""))
    {
      frm.CallerEMail.value = frm.CallerEMail.value + "@domain.com";
    }
  }
*/

  function SetFocus() {
    document.main_form.CallerEMail.focus();
  }
// hide end -->
</script>

...och hur skriver jag ut värdet på det som står innan @domain.com?

Medlem sedan jan. 20021 122 inlägg
#2

Skriptet verifierar data i ett formulär.
Om angiven mailadress saknar @domän.com kommer frm.CallerEMail.value att innehålla det du söker, annars kan du få ut det mha

frm.CallerEMail.value.substring(0, frm.CallerEMail.value.indexOf('@'));
Medlem sedan jan. 20011 213 inlägg
#3

Tack pettsson,

hur skriver jag ut det på sidan då?

<script>document.write(frm.CallerEMail.value.substring(0, frm.CallerEMail.value.indexOf('@'));</script>

Får bara scriptfel så jag antar att det är fel ;)

Medlem sedan juni 200032 969 inlägg
#4

Ett tips till att börja med kan ju vara att räkna start- och slutparenteser.

Medlem sedan aug. 20039 342 inlägg
#5

Problemet med koden ovan är att document.write måste användas innan sidan är laddad, med att du inte kan komma åt formuläret innan den är det.
Om du bara vill kolla värdet kan du använda alert(...), annars kan du skapa en div och använda document.getElementById("Divens_id").innerHTML = ...
MEN! I bdåa fallen måste du se till att sidan är laddad när koden körs, t ex genom att placera koden i ett onclick-attribut till en länk.

Medlem sedan jan. 20011 213 inlägg
#6

Ok, tack för hjälpen allihopa :)

135 ms totalt · 3 externa anrop · v20260731065814-full.9823c0c5
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)