Avatar billede pr0phet Nybegynder
03. december 2011 - 14:19 Der er 4 kommentarer

Tilføj submit knap i javascript.

Nogle javascript nørder, der kan hjælpe mig med et lille mysterium?

Jeg skal gerne have indsat en button, submit button, link eller lignende, til at sende input feltet, det skal samtidig være muligt at submit ved at indtaste noget i feltet og trykke enter, som koden er opsat til nu.
Jeg er desværre ikke så skarp til javascript :P

php koden:
    <input id="lovefactory-shoutbox-submit" type="text" value="Hvad har du på hjertet? Skriv en statusbesked her..." onFocus="this.value=''" onblur="Hvad har du på hjertet? Skriv en statusbesked her..." />

<!-- Link, knap eller lign. -->
<a href="#">Godkend</a>
<button>
<form>
<input type="submit" value="godkend">
</form>
<!-- cstm submit knap slut -->

<br><br>
    <?php defined('_JEXEC') or die('Restricted access'); ?>

    <div id="lovefactory-shoutbox" class="lovefactory-shoutbox<?php echo $params->get('moduleclass_sfx'); ?>">

      <?php foreach ($messages as $i => $message): ?>
     
        <div class="lovefactory-shoutbox-message <?php echo $i % 2 ? '' : 'even'; ?>">
          <a href="<?php echo JRoute::_('index.php?option=com_lovefactory&view=profile&id=' . $message->sender_id . '&Itemid=' . $Itemid); ?>"><?php echo $message->username; ?> skrev: </a><?php echo $message->message; ?>
          <div class="date"><?php echo $message->created_at; ?></div>
        </div>
      <?php endforeach; ?>
    </div>

    <div id="lovefactory-shoutbox-response" style="display: none;"></div>

    <?php if (2 == $access): ?>


      <div id="lovefactory-shoutbox-loader">
        <span style="display: none;" class="lovefactory-button lovefactory-loader-button"><?php echo JText::_('MOD_LOVEFACTORY_SHOUTBOX_SENDING_MESSAGE'); ?></span>
      </div>
    <?php endif; ?>



JavaScript filen:
    jQueryFactory(document).ready(function ($) {
      var queue    = new Array();
      var started  = false;
      var shoutbox = $("#lovefactory-shoutbox");
      var request  = false;

      // Send message
      $("#lovefactory-shoutbox-submit").keypress(function (event) {
        var code    = (event.keyCode ? event.keyCode : event.which);
        var message = $(this).val().trim();

        if (code == 13 && !request && '' != message)
        {
          $(this).val('');

          request = true;
          $("#lovefactory-shoutbox-loader span").show();

          $.ajax({
            url: 'index.php?option=com_lovefactory&controller=shoutbox&task=postmessage',
            type: 'POST',
            data: 'message=' + message,
            dataType: 'json',
            success: function (response) {
              request = false;
              $("#lovefactory-shoutbox-loader span").hide();

              if (0 == response.status)
              {
                $("#lovefactory-shoutbox-response")
                  .hide()
                  .html(response.message)
                  .fadeIn(function () {
                    var info = $(this);
                    setTimeout(function () {
                      info.fadeOut();
                    }, 3000);
                  });
              }
            }
          });
        }
      });

      // Update shotubox
      if (lovefactory_shoutbox_interval)
      {
        setInterval(function () {
          $.ajax({
            url: 'index.php?option=com_lovefactory&controller=shoutbox&task=getmessages&format=raw',
            type: 'POST',
            data: 'lovefactory_shoutbox_last=' + lovefactory_shoutbox_last + '&lovefactory_shoutbox_limit=' + lovefactory_shoutbox_limit,
            dataType: "json",
            success: function (response)
            {
              if (1 == response.status)
              {
                var messages = response.messages;

                if (response.last)
                {
                  lovefactory_shoutbox_last = response.last;
                }

                for (var i = 0, count = messages.length; i < count; i++)
                {
                  var message = messages[i];
                  queue.push(message);

                  showQueue();
                }
              }
            }
          });
        }, lovefactory_shoutbox_interval * 1000);
      }

      // Show queue
      function showQueue()
      {
        if (started)
        {
          return false;
        }

        if (0 == queue.length)
        {
          started = false;
          return false;
        }

        started = true;

        if (lovefactory_shoutbox_limit == shoutbox.find(".lovefactory-shoutbox-message").length)
        {
          shoutbox.find(".lovefactory-shoutbox-message:last").remove();
        }

        message = queue[0];
        var even = shoutbox.find(".lovefactory-shoutbox-message:first").hasClass("even") ? "" : "even";
        shoutbox.attr({ scrollTop: 0 });

        shoutbox
          .prepend("<div class='lovefactory-shoutbox-message " + even + "' style='display: none;'><a href='" + message.l + "'>" + message.u + "</a>" + message.m + "<div class='date'>" + message.d + "</div></div>")
          .find(".lovefactory-shoutbox-message:first")
          .effect("highlight", {}, 1000, function () {
            queue.splice(0,1);
            started = false;
            showQueue();
        });
      }
    });
Avatar billede jakobdo Ekspert
03. december 2011 - 15:10 #1
Det burde være nok med en helt simpel <form.. med input text og input submit
Avatar billede pr0phet Nybegynder
03. december 2011 - 20:31 #2
@jakobdo

Jeg ville ønske det var så let, men det er det desværre ikke, da hele input feltet køre via. javascriptet, kan jeg desværre ikke gøre det.
Avatar billede olebole Juniormester
04. december 2011 - 18:38 #3
<ole>

- men det burde måske slet ikke 'køre via javascript'  *o)

/mvh
</bole>
Avatar billede jakobdo Ekspert
04. december 2011 - 21:48 #4
Du kunne vel godt lave en almindelig form, og så anvende: http://api.jquery.com/submit/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester