0

次のことを試しましたが、サーバーに 2 つのデータが返されます。これは私のゲートウェイの問題であり、エラーが発生します。

私はこれを私の試みの1つに使用しました:

 <script type="text/javascript">
 if( $('#other).is('):selected') ) 
 {
   // user wants to enter own value
 $('[name="installments"]").not('[type="text"]').attr('name', '') // remove all      
  values apart from the entered text.
 }
 </script>

<body>
<FORM ACTION="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi" METHOD="POST">
<br><br>
<input type="radio" name="installments" id="r1" checked="checked" value="99">
&nbsp;Open-Ended - I can stop them via email at any time.<br>
<label for="installments">number of payments</label><br>
<input type="radio" name="installments" id="other" value="Enter Custom.."><br>
<input type="text" name="installments" value="" maxlength="4" size="4">
 <br><br><br>
<input type="submit" name="btnSubmit" value="Submit" />
</form>

これは次のいずれかを返します -

installments 99 
installments (empty) 

また

installments Enter Custom.. 
installments 5 

var '分割払い' の返品は、99 または彼らが割り当てた数のいずれか 1 つしかありません。私はJSを使用してこれを行うさまざまな方法を試し、ユーザーが同じ結果で選択できるようにしました.var '分割払い'の2つのインスタンスが送信されました.

入力フィールドをテストする JavaScript の方法はありますか?数値が入力された場合は、id(s) を使用して追加のラジオ ボタンを無効にして、データを送信できませんか? または、これを行うより良い方法はありますか?


解決済み

答えが見つかりました & ここにあります

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
 $(function() {
  $('#user_input').change(function() {
  $('#use_user_input').val($(this).val());
  });
 });
</script>

そしてここにHtml:

 Total number of payments...</span><br>
 <input type="radio" name="installments" checked value="99"> &nbsp;
        Open-Ended -
 <input id="use_user_input" type="radio" name="installments" value=""> &nbsp;
        limited number of payments - &nbsp;
<input id="user_input" type="text" value="" maxlength="4" size="4"></span>
4

2 に答える 2

1

入力テキスト フィールドにラジオ入力とは別の名前を付けてから、テキスト フィールドの POST を HTTP 要求のラジオ ボタンとは別の変数として処理します。また、関連するテキスト入力を処理できるように、2 番目のラジオ入力に「other」などの値を指定します。

于 2013-02-21T20:32:25.363 に答える
0

フォームから 1 つのフィールドしか受信できない場合は、ユーザーが入力するときにフォームを変更する必要があります。現在、ユーザーがラジオ ボタンで区切られた値の 1 つを選択すると、フォームが機能します。私が収集した問題は、ユーザーがテキスト ボックスに入力する「その他」のオプションを選択した場合でも、ラジオ ボタンのステータスがテキスト フィールドの値を上書きすることです。

解決策は、ユーザーがテキスト ボックスの内容を変更したときにトリガーされるスクリプトを使用することです。このスクリプトは、テキスト ボックスの値を読み取り、その値を [その他] ラジオ ボタンに割り当てます。

onchangeイベントを使用してこれを行うことができます。

<input id="otherRadio" type="radio" name="installments" value="" /><br />
<input id="otherText" type="text" value="" maxlength="4" size="4" onchange="applyOtherOption()" />

ここでこれを試すと、テキスト フィールドの値を変更すると、ページで JavaScript エラーが発生します。これは、ブラウザが という名前の JavaScript 関数を見つけられないためapplyOtherOptionです。今それを変更しましょう:

<script type="text/javascript">
    function applyOtherOption() {
        var textField = document.getElementById("otherText");
        var radioField = document.getElementById("otherRadio");

        radioField.value = textField.value;
    }
</script>

その結果、「その他」のラジオ ボタンの値は常に、ユーザーがテキスト フィールドに入力した値に変更されます。このラジオが選択されている場合、これがフォームと共に送信されます。

重要 ここでは、フォーム要素のコンテンツにアクセスする最も簡単な方法を入力しました。これは、ほとんどの (おそらくすべての主要な) ブラウザーで動作しますが、これは行うべき方法ではありません。適切な方法は、最初にフォームにアクセスし、次にフォーム要素からフィールドにアクセスすることです。正しく行うには、フォーム要素の値の設定に関するこの記事を読む必要があります。

これが役に立つことを願っています。

于 2013-02-22T22:30:20.080 に答える