午後、私の質問は2つの連鎖フォームに関係します。ここでは、最初のフォームの値が検証され、OKの場合、2番目のフォームが表示されます(最初のフォームの入力フィールドが非アクティブになり、送信ボタンが非表示になります)。
私の質問は、最初のフォームから値を取得して、非表示フィールドとして2番目のフォームにアタッチするにはどうすればよいかということです。
私のコードは次のようになります:
<form id="upfotos_dados" action="POST">
<p class="desc_nome"><strong>O seu nome: </strong></p>
<input type="text" id="fotos_nome" />
<p class="desc_email"><strong>O seu email: </strong></p>
<input type="text" id="fotos_email" />
<p class="desc_especie"><strong>Fotografias da espécie: </strong></p>
<input type="text" size="20" id="fotos_especie" value="Asplenium Cetarach" disabled />
<input value="Confirmar" type="submit" name="submit" class="button submit_dados" />
<div class="clearfix"></div>
</form>
<form id="upload_imagens" action="javascript:$('#file_upload').uploadifive('upload')">
<div id="queue"></div>
<input id="file_upload" name="file_upload" type="file" multiple>
<input value="Enviar Fotografias" type="submit" name="submit" class="enviafotos-button" />
</form>
そしてjQuery:
$(document).ready(function(){
$("#upload_imagens").hide();
});
$('.submit_dados').live("click",function(){
if($('#fotos_email').val() == ''){ $('#fotos_email').parent().find('.desc_email').append("<span style='color:#A00'>Campo obrigatório.</span>"); return false; }
else if(!IsEmail($('#fotos_email').val()) ){ $('#fotos_email').parent().find('.desc_email').append("<span style='color:#A00'>Email incorrecto.</span>"); return false; }
if($('#fotos_nome').val() == ''){ $('#fotos_nome').parent().find('.desc_nome').append("<span style='color:#A00'>Campo obrigatório.</span>"); return false; }
if($('#fotos_especie').val() == ''){ $('#fotos_especie').parent().find('.desc_especie').append("<span style='color:#A00'>Campo obrigatório.</span>"); return false; }
if($('#fotos_email').val() != '' && IsEmail($('#fotos_email').val()) && $('#fotos_nome').val() != '' && $('#fotos_especie').val() != ''){
$("#upload_dados").hide();
$("#upload_imagens").show();
return false;
}
});
残念ながら、まだ正しく実行できていないフィールドの同時検証など、いくつかの作業はまだ進行中です。