ユーザーが を入力できる入力フィールドがありますINPUTVALUE
。これINPUTVALUE
は正規表現に対して正しいかどうかがチェックされ、php ファイルに送信され、それを使用して計算が行われ、いずれかの 0 が返されます (無効であることを意味しINPUTVALUE
ます) 。またはRETURNVALUE
。これRETURNVALUE
は、 id を持つ Web サイトの要素に表示される必要があります#VALUEINFO
。また、これがRETURNVALUE
関数によって返されることを望みますget_value_by_input()
。返されたものを確認するために、最初にアラートを表示しています。
(これの実用的なアプリケーションは、たとえば、注文のクーポン コードです...クーポン コードを入力すると、データベースで確認され、クーポンの値が返されるか、有効なクーポン コードでない場合は 0 が返されます。 )
#VALUEINFO
私の問題は、JavaScript の変数スコープで何かを台無しにしているに違いないということRETURNVALUE
ですno returnvalue specified
。
function get_value_by_input()
{
var returnvalue;
var valueinfo = $('#valueinfo');
valueinfo.text('');
var inputvalue = $("input[name='inputvalue']").val();
var correctinput = /^[a-zA-Z]*$/i;
if( inputvalue.length > 0 && correctinput.test(inputvalue))
{
$.post('ajax/valuecheck.php', {inputvalue_test: inputvalue}, function(is_valid){
if(is_valid == 0)
{
valueinfo.text('Sorry, this input is not working...');
returnvalue = 0;
}
if(is_valid != 0)
{
valueinfo.text('the returned value for your input is '+is_valid);
returnvalue = is_valid;
}
});
}
else
{
if(inputvalue)
{
valueinfo.text('Invalid input.');
returnvalue = 0;
}
}
if(returnvalue)
{
alert('the value for this input was was '+returnvalue);
return returnvalue;
}
else
{
alert('no returnvalue specified.');
return 0;
}
}
繰り返します が、#VALUEINFO で正しい戻り値が得られるにもかかわらず、このコードが常に「戻り値が指定されていません」と警告するのはなぜですか?
これはifブロックに関係していると思います。条件が満たされていない場合でも、javascriptはifブロック内の変数の設定を無視しないことを読みました...しかし、他にどのように値を#valueinfoに渡して返すことができますかそれと同時に?どんな助けや提案も大歓迎です! :-)
編集:
はい、変数スコープとは関係ありませんが、Asyncronus-jax に関するものです。私は自分のコードを再構築することになりました...get_value_by_input()
今ではもっとprocess_input()
関数になっています。最初にINPUTVALUE
が正しいかどうかがチェックされ、エラーがない場合にのみ$.post(...
が呼び出されます。PHPファイルによって返された値は、返されてから別の関数から使用されるのではなく、コールバック関数内ですぐに使用されます.done()
.今日はもうこの作業に長すぎました... -.- たぶん次回。今のところ動作します:)