2009-05-28 7 views
1

Ok, weil ich so ein Noob bin und keine Ahnung habe, wie Javascript funktioniert ... Mein Denken war fehlerhaft. Ich bin jetzt halb da. Ich habe einen der Vorschläge des Plakats genommen und eine Funktion aufgestellt und dann im html Form Tag, ich rufe es an. Das funktioniert. Ich dachte, dass ich einen ID-Selektor haben müsste, um JQuery-Trigger zu haben, aber das ist nicht der Fall. Es tut mir Leid. Ich weiß, dass ich überhaupt keinen Sinn habe, aber bitte ertrage mich, ich versuche es. :)So senden Sie eine Textarea mit Wysiwyg Editor und Jquery

Jetzt habe ich das Formular auf das Javascript/Jquery-Skript zeigen. Ich muss jetzt die JQuery reparieren. Hier ist der Code.

function doSave(){ 
    $(function() { 
    $('.error').hide(); 
    $("#dfar").click(function() { 
     $('.error').hide(); 

    var textArea = $('#dfarReport'); 
    if (textArea.val() == "") { 
    alert('sd'); 
     textArea.show(); 
     textArea.focus(); 
    return false; 
    } 

Aus irgendeinem Grund, obwohl ich den Absenden-Button drücken und haben die ID-Auswahl des Textbereichs enthalten ich nicht die Warnung sehen. Kann mir bitte jemand sagen, was ich falsch mache?

+0

Sie sprechen über ‚diese Javascript einreichen‘, „und es verwendet ein Javascript submit() ". Könnten Sie bitte etwas mehr dazu sagen? Wo ist der Wysiwyg mit dem submit()? Und ist es richtig zu sagen, dass Sie wollen: - Bearbeiten von Text in einem WYSIWYG-Editor - Validierung der eingegebenen Daten mit jQuery - die Daten an den Server senden Ist das richtig? – Natrium

+0

Hallo Natrium. Ja, ich möchte nur bestätigen, dass das Textfeld nicht leer ist. Es ist wirklich der einzige Teil auf dem Formular, der eine Validierung erfordert. Ich habe die ONLY Save Funktion gepostet, die ich im obigen Editor in meinem ursprünglichen Post finden konnte. – user109162

+0

ok, cool. Aber ich weiß immer noch nicht genau, was dein Problem genau ist ... Ist es die Bestätigung? Das Einreichen? – Natrium

Antwort

1

Sie könnten das Textfeld von

$('textarea') 

bekommen Wenn es das einzige auf Ihrer Seite ist.

Sie müssen nur auf dem Formular aufrufen, dass das Textfeld innerhalb

enthalten ist

EDIT:

nach dem Update zu lesen, Sie wollen einfach nur bestätigen, dass das Textfeld nicht leer ist, vor der Unterbreitung bilden. Sie müssen nur die Validierung einzurichten

var textArea = $('#results'); //Get the textarea 

if (textArea.val() == "") { 
    textArea.show(); 
    textArea.focus(); 
return false; 
} 
// perform the form submit here as textarea is not blank 

Könnten Sie das ganze Objekt erstellen, wo Sie den Code erhalten haben mit von

case "Save": 

beginnen? Es wäre wahrscheinlich eine gute Idee, dieses Objekt zu verwenden, um das Senden durchzuführen.

EDIT 2:

In Bezug auf Ihre Kommentare über die Seite aktualisiert wird, bewirkt, dass das Formular abschicken der Seite veröffentlicht werden. Es klingt, als ob Sie Daten mit AJAX senden möchten.

Werfen Sie einen Blick auf $.ajax() Befehl jQuery

+0

Es ist der einzige auf meiner Seite. Also muss ich dann nicht wirklich die "Submit" -Button-ID verwenden? – user109162

+0

Hallo Russ, also meinst du den Javascript-Editor? Soll ich diesen Code posten? Es ist wirklich lang. Ich habe versucht, Ihren Code und ich denke, es funktioniert, aber das Problem, das ich habe, ist, dass die Seite aktualisiert wird. Gibt es eine Möglichkeit, dies zu stoppen? – user109162

+0

das Senden des Formulars bewirkt, dass die Seite POSTED wird. Es klingt wie Sie Daten mit AJAX veröffentlichen möchten. Werfen Sie einen Blick auf die $ .ajax() -Dokumentation von jQuery http://docs.jquery.com/Ajax/jQuery.ajax#options –

1

Schaltfläche Ändern auf

<script> 
function doSave() 
{ 
    // save data using jQuery 
} 
</script> 
<input type="button" value="Save" onclick="doSave(); return false;"> 

oder

Sie können das Formular ändern mit

<form onsubmit="doSave(); return false;"> 
+0

Hallo Pavels. Das Problem ist, dass das Javascript submit nicht zugänglich ist. Ich werde den Code oben aus dem Editor Also kannst du sehen, was ich meine. – user109162

+0

Pavels, danke, ich bin fast da und benutze deinen Vorschlag :) – user109162

0

Sie so etwas wie

tun könnte
$(document).ready(function(){ 
    $("#submit_btn").click(function(){ 
     mySubmit($("#myForm")) ; // call your existing javascript submit routine 
    }); 
}); 

oder wenn Sie es vorziehen,

$(document).ready(function(){ 
    $("#myForm").submit(function(){ 
     mySubmit($("#myForm")) ; // call your existing javascript submit routine 
    }); 
}); 
+0

Ahaa .. Ich denke du magst Recht haben ... Ich sollte in der Lage sein, die ID vom Formular-Tag zu verwenden. .brb .. – user109162

+0

Hallo Stobor, es funktioniert nicht. Ich habe den Code, mit dem ich oben arbeite, erneut hochgeladen. Kannst du mir sagen, was los ist? – user109162

3

ok, ich glaube, Sie werden diese benötigen:

$(document).ready(function(){ 

    $("form").submit(function(){ 
     var textArea = $('#dfarReport'); 

     if (textArea.val() == "") { 
      textArea.show(); 
      textArea.focus(); 
      return false; 
     } 
     else // you'll need to add the else and the return true 
     { 
      return true; 
     } 
    }); 

}); 

Sie müssen true zurück, wenn das Formular gültig ist.

Weitere Informationen: http://docs.jquery.com/Events/submit

Aber stellen Sie sicher, dass Sie die Daten auf dem Server als auch bestätigen!

+0

Hallo Natrium, leider funktioniert das nicht. Ich habe einen Alarm nach f (textArea.val() == "") {und habe nichts eingegeben, aber ich habe nicht bemerkt, dass die Warnung aufkommt, die mir sagt, dass etwas immer noch nicht stimmt. Würdest du wissen warum? – user109162

+0

und wird die Warnung angezeigt, wenn Sie die Warnung VOR dem if setzen? $ ("Formular"). Senden möglicherweise falsch. Sie können also auch diesen Selektor überprüfen. – Natrium

+1

Sie haben Ihren Code in Ihrem ersten Beitrag geändert. var textArea = $ ('# dfarReport'); Das ist nicht, was es zuerst gesagt hat. Das könnte das Problem sein. – Natrium

0

posten Sie bitte den von Ihnen verwendeten Code.

Sie bearbeitet wie 3x und es gibt immer einen anderen Ansatz.

Ok, wenn Sie den Code verwenden möchten, wie Sie jetzt in Ihrem ersten Beitrag definiert, werden Sie dies tun müssen:

function doSave(){ 
    $(function() { 
    $('.error').hide(); 
    $("#dfar").click(function() { 
     $('.error').hide(); 

    var textArea = $('#dfarReport'); 
    if (textArea.val() == "") 
    { 
     alert('sd'); 
     textArea.show(); 
     textArea.focus(); 
    return false; 
    } 
    else 
    { 
     return true; 
    } 
Verwandte Themen