SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

Sharepoint new/editform Feldwert mit changed eventhandler abfragen

bewertet von 0 Usern
Beantwortet Dieser Beitrag hat 1 Geprüfte Antwort | 3 Antworten | 1 Follower

Top-50-Beitragsschreiber
263 Beiträge
MStel erstellt in 23 Apr 2018 13:12

Hallo, ich habe mehrere Felder in meiner NewForm und möchte per JavaScript erzielen, dass das zweite Feld erst eingeblendet wird, wenn das erste Feld einen wert erhält.

Das ganze habe ich manuell beim erstmaligen Laden der Seite schon so hinbekommen wie ich es brauche, jedoch bringt mir das reichlich wenig, da ich einen EventHandler benötige, der das Feld einblendet, während man sich noch auf der Newform/EditForm befindet, und nicht erst beim nächsten aufruf.

Zunächst mein code:

<script src="/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">

$(document).ready(function () {

//Hier blende ich Felder nach belieben ein und aus

$('nobr:contains("Feld1")').closest('tr').show();
$('nobr:contains("Feld2")').closest('tr').hide();

//Hier hole ich mir den Feldwert und frage auf diesen ab:

var textValue = $("input[title='Feld1']").val();
if ( textValue != '' )
{
 $('nobr:contains("Feld2")').closest('tr').show();
}

});

</script>

Ich habe versucht das ganze mit einem manuellen reload darzustellen und mit HTML einfach einen Button eingeblendet, Problem hierbei ist dass die bereits eingegebenen werte nicht zwischengespeichert werden.

Die einzige saubere Lösung die mir hier einfällt wäre diese IF Abfrage, die ich nutze um auf den Value zu schauen, durch einen Eventhandler zu ersetzen, der jedes mal diese IF Abfrage ausführt, wenn ein Wert geändert wird.

Ist dies möglich bzw. gibt es ein Beispiel dazu?

MFG


<!--
<input type="button" value="Reload Page" onClick="window.location.reload()">
-->

Beantwortet Geprüfte Antwort

Top-10-Beitragsschreiber
Männlich
18.567 Beiträge
Verified by MStel

Ganz einfach:

$("input[title='Feld1'].change(function() {
// hier die Eingabe prüfen und entsprechend reagieren
});

 

Viele Grüße
Andi
af @ evocom de
Blog

Alle Antworten

Top-10-Beitragsschreiber
Männlich
18.567 Beiträge
Verified by MStel

Ganz einfach:

$("input[title='Feld1'].change(function() {
// hier die Eingabe prüfen und entsprechend reagieren
});

 

Viele Grüße
Andi
af @ evocom de
Blog
Top-50-Beitragsschreiber
263 Beiträge

Hi,

Hab nachdem es auf Anhieb nicht lief mal danach gesucht und etwas ähnliches gefunden, was bei mir funktioniert.

Code sieht wie folgt aus:

$("input[type='text']").change( function() {

// IF Abfrage

}

ist es sauberer auf den Field Title zu gehen oder kann ich das auch mit dem Type text machen? 

Vielen Dank auf jeden fall schon mal.

Gruß

Top-10-Beitragsschreiber
Männlich
18.567 Beiträge

MStel:
ist es sauberer auf den Field Title zu gehen oder kann ich das auch mit dem Type text machen?

Der Title ist einfach genauer. Es kann in der Seite ja viele input[type=text] geben und die lösen dann alle das Event aus.

Viele Grüße
Andi
af @ evocom de
Blog
Seite 1 von 1 (4 Elemente) | RSS