2017-04-14 2 views
1

wie „gleiche wie oben“ zu geben, in Form Einträge

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 

 
<form method="POST" class="form-group"> 
 
\t <label>First Name</label><input type="text" name="FName" class="form-control"> 
 
\t <label>Last Name</label><input type="text" name="LName" class="form-control"><br> 
 
\t <label>I am Ready</label><input type="checkbox" name="ch"><br><br> 
 
\t <label>Address</label><input type="text" name="Address" class="form-control"> 
 
</form><br><br> 
 

 
<form method="POST" class="form-group"> 
 
\t <label>Same as Above</label><input type="checkbox" name="chd"><br><br> 
 
\t <label>First Name</label><input type="text" name="FName" class="form-control"> 
 
\t <label>Last Name</label><input type="text" name="LName" class="form-control"><br> 
 
\t <label>I am Ready</label><input type="checkbox" name="ch"><br><br> 
 
\t <label>Address</label><input type="text" name="Address" class="form-control"> 
 
</form>

wenn wir das Kontrollkästchen ‚gleiche wie die oben‘ dann die zweite Form gleichen Werte nehmen benannt geprüft werden, die in der sind erste Formularfelder

+0

Mit den von Ihnen angegebenen Werkzeugen (JavaScript/jQuery) würden Sie die Felder identifizieren, aus denen Sie kopieren, und deren Werte abrufen, die Felder identifizieren, in die Sie kopieren, und deren Werte festlegen. Was hast du probiert? – David

+0

Möchten Sie nur die Werte von form1 in form2 kopieren? – warl0ck

+0

Ich glaube, Sie haben 2 gleiche Form in Ihrem Code und ich weiß, Sie sollten nicht die gleichen Namen Elemente in HTML geben. Bitte ändern Sie zuerst diese Namen und geben Sie die IDs Ihres Formulars an. Dann können Sie kopieren, welche Form 1 sagt, um 2 –

Antwort

2

Sie können jQuery verwenden, wie Sie zwei Eingabefelder haben nehme und eine Checkbox , wenn Sie auf Kontrollkästchen klicken, um es Wert aus dem ersten Eingang erhalten hat, und weisen sie auf den zweiten wie

$(function(){ 
 
    ("#checkbox").click(function(){ 
 
    if($(this).is(':checked')){  
 
    var input1=$("#input1").val(); 
 
    $("#input2").val(input1); 
 
    } 
 
    }); 
 
});

+0

Ich hoffe, das funktioniert für einige Felder gut, aber es scheint nicht besser für mehr Felder, so dass ich Code immer wieder mit jedem Feld schreiben muss. –

+0

ok @Nagaraj viel Glück. –

-1

Erhalten Sie alle Eingaben in Javascript. Angenommen, Sie haben zwei Eingabefelder und ein Kontrollkästchen, wenn das Kontrollkästchen aktiviert ist, haben beide Felder denselben Wert, wenn der Benutzer keinen zweiten Wert in der zweiten Eingabe eingibt.

so können diesen Code versuchen:

var input1 = document.getElementById("input1"); 
if (document.getElementById('checkbox_field_ID').checked) { 
     $('#input2').append(input1); 
} 

Ich hoffe, es hilft :)

+0

Dieser Code wird input1 von seinem ursprünglichen Platz zum Bestimmungsort verschieben, anstatt Wert zu aktualisieren. –

1

Sie müssen sich auf proto Formular aus, wenn „wie oben“ -Felder Änderungen starten hören geprüft und stoppen, wenn unkontrolliert zu hören. Und wenn der Wert eines Feldes ändert dann nur Proxy-Werte aller Felder proto Formular Formularfelder

(function($) { 
    var $forms = $('form'); 
    var $protoForm = $forms.eq(0); 
    var $surrogateForm = $forms.eq(1); 

    var proxyValues = function(name) { 
    var $fields = $protoForm.find('input'); 

    if (typeof name === 'string') { 
     $fields = $fields.filter('[name="' + name + '"]'); 
    } 

    $fields.each(function() { 
     var field = $surrogateForm.find('[name="' + name + '"]').get(0); 
     if (field.type === 'checkbox') { 
     field.checked = this.checked; 
     } else { 
     field.value = this.value; 
     } 
    }); 
    }; 

    var startValuesProxy = function() { 
    proxyValues(); 
    $protoForm.on('change.valuesProxy', 'input', function(e) { 
     proxyValues(e.target.name); 
    }); 
    }; 

    var stopValuesProxy = function() { 
    $protoForm.off('.valuesProxy'); 
    }; 

    $surrogateForm.on('change', '[name="chd"]', function(e) { 
    if (e.target.checked) { 
     startValuesProxy(); 
    } else { 
     stopValuesProxy(); 
    } 
    }); 
})(jQuery); 
+0

danke für ihre antwort, ihre antwort ist wenig komplex, ich habe nicht richtig verstanden, wie ich anfänger in jquery bin. Gibt es eine einfache Logik für diese ..? .. –

+0

Diese Logik ist komplex, weil es Werte jedes Mal, wenn ein Feld in der ersten Form geändert wird Proxy-Werte und nicht nur einmal, wenn Sie das Kontrollkästchen "wie oben" Kontrollkästchen. –

0

Nach meiner Erfahrung Surrogat können Sie nur die Bedienelemente deaktivieren - scheint auf diese Weise auf anderen Seiten zu sein - dann in Ihrem einreichen Methode - wenn die Checkbox angeklickt wird - das an die Steuerung senden und verwenden Sie die ‚über‘ Werte auch dort ..

$(function() { 
    $('#chkSameAsAbove').on('change', function() { 
    var otherControls = $(this).parent().find('input:not(#chkSameAsAbove)'); 
     if($(this).is(':checked')) { 
      otherControls.prop('disabled', true); 
     } else { 
     otherControls.prop('disabled', false); 
     } 
    }); 
}); 

https://jsfiddle.net/7xv5bv4h/

+0

Ich habe versucht mit Ihrer Logik, es deaktiviert nur die zweiten Formularfelder, aber es wird nicht Werte, die in der ersten Form sind.Ich möchte, dass erste Formularwerte in das zweite Formular eingefügt werden, nachdem das Kontrollkästchen aktiviert wurde. –

1

1) wenn Sie die Checkbox, die Sie benötigen würden bedeuten würde um ein verstecktes Feld in Ihrem Adressformular zu erstellen und die Ergebnisse der Adressfelder, die Sie benötigen, an die ausgeblendeten Felder im Adressformular übergeben.

2) Auf Checked Box Checked Event. Example

Hoffe seine Arbeit !!!

Verwandte Themen