Muszę zakodować nazwę domeny (IDNA) dla konkretnego rejestratora za pomocą akcentów.Zmiana pola wejściowego przed przesłaniem
Mam proste pole wejściowe:
<input type="text" id="idndomain" name="sld[0]" size="40" />
Moja funkcja jQuery
$(document).ready(function() {
$('#domainform').submit(function(){
$.getJSON("includes/idna/idna.php", {
domain: $("input#idndomain").val()
}, function(data){
$("div#result").html($('<b>' + data.encoded + '</b>'));
$('#idndomain').val(data.encoded);
});
return true;
});
});
więc przesyłam zapytanie do idna.php który koduje nazwę domeny i zwraca tablicę json:
{"encoded":"xn--caf-dma.ch"}
Problem polega na tym, że formularz jest przesyłany z "oryginalną" wartością, a nie z wartości zwróconej przez b y zapytanie json.
Pytanie brzmi: jak najpierw "czekać" na wynik json, zastąpić pole wejściowe zakodowanym łańcuchem, a następnie przesłać?
Koniecznie pozwalają na więcej niż jednym kliknięciem, niektórzy ludzie mogą złożyć formularz z powrotem lub kartę> spacja/karta> powrót. – dylanfm
dlaczego nie wiązać z $ ("selektor"). Na żywo ("kliknij", funkcja() {}); ? Zawsze znajdowałem to lepiej na wszelki wypadek :) – Sam
Nie sądzę, że jest wystarczająco dużo kontekstu, aby polecić użycie 'live', jest to naprawdę potrzebne tylko wtedy, gdy przycisk" submit "zostanie zastąpiony (co nie może się wydarzyć w oparciu o to pytanie). – karim79