Мне нужно закодировать доменное имя (IDNA) для конкретного регистратора, используя акценты.Измените поле ввода перед отправкой
У меня есть простое поле ввода:
<input type="text" id="idndomain" name="sld[0]" size="40" />
Моя функция 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;
});
});
Так что я послав запрос idna.php, который кодирует имя домена и возвращает массив JSON:
{"encoded":"xn--caf-dma.ch"}
Проблема в том, что форма отправляется с «исходным» значением, а не с возвращенным значением b y запрос json.
Вопрос: как «дождаться» результата json сначала, замените поле ввода закодированной строкой и отправьте?
Будьте уверены, чтобы обеспечить больше, чем просто один клик, некоторые люди могли бы представить форму с возвратом или вкладкой> пробел/вкладка> возврат. – dylanfm
Почему бы не связать с $ ("селектор"). Live ("click", function() {}); ? Всегда было лучше на всякий случай :) – Sam
Я не думаю, что существует достаточно контекста, чтобы рекомендовать использовать 'live', это действительно необходимо, только если кнопка отправки будет заменена (что я не вижу, что происходит на основе вопроса) – karim79