2016-11-07 9 views
1

Ich möchte alle Zeichen nach den ersten Buchstaben in den Werten der Eingaben mit jQuery löschen. Ich habe dies:Wie wird der Eingabewert nach dem ersten Buchstaben gelöscht?

<form id="form"> 
    <label><input type="checkbox" name="checkbox-one[]" value="A some text">A some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="B some text">B some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="C some text">C some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="D some text">D some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="Е some text">Е some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="F some text">F some text</label> 

    <input type="submit" value="submit"> 
</form> 

ich das Ergebnis will das sein:

<form id="form"> 
    <label><input type="checkbox" name="checkbox-one[]" value="A">A some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="B">B some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="C">C some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="D">D some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="Е">Е some text</label> 
    <label><input type="checkbox" name="checkbox-one[]" value="F">F some text</label> 

    <input type="submit" value="submit"> 
</form> 

Wie kann ich es tun?

+0

Warum nicht löschen, bevor das Formular ausgefüllt wird? Auf diese Weise wird der Benutzer nie sehen, was die Werte waren (vorausgesetzt, das ist wichtig für Ihre Logik). Die Verwendung von JS bedeutet, dass sie immer noch die Werte sehen können, die ursprünglich in die Quelle der Seite geladen wurden –

+0

Ich habe dieses Formular jetzt und möchte es löschen, bevor Sie das Formular senden –

Antwort

3

Sie können dies erreichen, indem eine Funktion val() bereitzustellen, die nur das erste Zeichen des aktuellen Wertes zurückgibt:

$('input[type="checkbox"]').val(function(i, v) { 
 
    return v[0]; 
 
}) 
 

 
// just to show it works: 
 
$('input[type="checkbox"]').each(function() { 
 
    console.log(this.value); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form"> 
 
    <label><input type="checkbox" name="checkbox-one[]" value="A some text">A some text</label> 
 
    <label><input type="checkbox" name="checkbox-one[]" value="B some text">B some text</label> 
 
    <label><input type="checkbox" name="checkbox-one[]" value="C some text">C some text</label> 
 
    <label><input type="checkbox" name="checkbox-one[]" value="D some text">D some text</label> 
 
    <label><input type="checkbox" name="checkbox-one[]" value="Е some text">Е some text</label> 
 
    <label><input type="checkbox" name="checkbox-one[]" value="F some text">F some text</label> 
 

 
    <input type="submit" value="submit"> 
 
</form>

Allerdings wäre es wohl besser sein, dies zu tun in Ihrem Code, der die Formularquelle auffüllt. Auf diese Weise wird der Benutzer nie sehen, was die Werte waren (vorausgesetzt, das ist wichtig für Ihre Logik). Wenn Sie JS verwenden, können die Werte, die ursprünglich in die Quelle der Seite geladen wurden, weiterhin angezeigt werden.

+0

Sie möchten dies vor dem Senden tun: '$ ("#form"). on ("submit", function() { }); ' – mplungjan

+0

Ich brauche nur die ersten Buchstaben. Vielen Dank! –

1

Sie können wie versuchen, diese

$("form").submit(function(event) { 
    $("input").each(function(){ 
    $(this).val($(this).val().charAt(0)) 
    }); 
}); 
2

Sie können die Werte ändern, bevor sie einreichen:

$("#submitForm").click(function() { 

    $("#valueA").val($("#valueA").val().charAt(0)); 
    //continue for other values as well (b to f) 
    $("#form").submit(); 

}); 

Ihr Formular wird geändert werden:

<form id="form"> 
    <label><input type="checkbox" id="valueA" name="checkbox-one[]" value="A some text">A some text</label> 
    <label><input type="checkbox" id="valueB" name="checkbox-one[]" value="B some text">B some text</label> 
    <label><input type="checkbox" id="valueC" name="checkbox-one[]" value="C some text">C some text</label> 
    <label><input type="checkbox" id="valueD" name="checkbox-one[]" value="D some text">D some text</label> 
    <label><input type="checkbox" id="valueE" name="checkbox-one[]" value="Е some text">Е some text</label> 
    <label><input type="checkbox" id="valueF" name="checkbox-one[]" value="F some text">F some text</label> 

    <button id="submitForm">Submit</button> 
</form> 

Es kann immer noch sein, optimiert, als ich die Antworten von anderen Benutzern sah.

Verwandte Themen