2016-11-30 7 views
1

同じgroupNameのテーブルにラジオボタンがあります。 CCJSを使用せずにフォームを送信するときに、このフィールドを検証する比較的簡単な方法はありますか?groupNameによるXpagesラジオボタンの検証?

<xp:td> 
    <xp:radio id="radio120" groupName="R_1" value="#{document1.R_1}" selectedValue="1"></xp:radio> 
</xp:td> 
<xp:td> 
    <xp:radio id="radio120" groupName="R_1" value="#{document1.R_1}" selectedValue="2"></xp:radio> 
</xp:td> 

通常のラジオボタングループコントロールでは、errorMessageコントロールとともにvalidateRequiredを使用してメッセージを表示します。十分なフェア

<xp:radioGroup styleClass="A2" style="border:0px;" value="#{document1.Necktie}" layout="pageDirection" id="Necktie"> 
    <xp:this.validators> 
     <xp:validateRequired message="REQUIRED!"></xp:validateRequired> 
    </xp:this.validators> 
    <xp:selectItem itemLabel="No" id="selectItem13"></xp:selectItem> 
    <xp:selectItem itemLabel="Yes" id="selectItem14"></xp:selectItem> 
</xp:radioGroup> 
<xp:message id="message10" for="Necktie"></xp:message> 
+0

私は、グループ名が一緒にラジオボックスを表示に関しては、グループ化のためにのみ使用されていると思いますか? validateRequiredで標準のradioGroupを使用したくない理由はありますか? –

+0

同じグループにラジオボタンを配置するのは、非常に特殊な方法でレイアウトされているからです。テーブル内のさまざまなセルに埋め込まれています。上記の私のコードは、それらのセルのうちの2つを表示しているだけです。 –

答えて

0

サーバー側のデータソース文書1を使用して、ラジオボタンが選択されました。
document1.getItemValueString("R_1")のテスト。空の場合は、エラーメッセージを設定し、falseを返します。それ以外の場合は、文書を保存します。

<xp:button value="Save" id="button1"> 
    <xp:eventHandler event="onclick" submit="true" 
     refreshMode="complete"> 
     <xp:this.action><![CDATA[#{javascript: 
      if (document1.getItemValueString("R_1") == "") { 
       facesContext.addMessage(null, 
        new javax.faces.application.FacesMessage("select a radio")); 
       return false; 
      } 
      document1.save(); 
     }]]></xp:this.action> 
    </xp:eventHandler> 
</xp:button> 
<xp:messages id="messages1" /> 
+0

これは機能します。それは私のボタンの下にエラーメッセージを表示するので。しかし、 "偽を返す"スクリプトの実行を停止していません。これはdocument1.save()に続きます。そのため、同じページに新しい質問セットが表示される、複数ページのアンケートでページカウンタを増やすことがあります。問題は何だと思いますか? –

+0

返品は返品となります。これは 'document1.save()'行に到達できません。多分あなたは別のアクションコードに 'document1.save()'を持っているかもしれませんし、プロパティ 'save =" true "'で "Submit"ボタンを使うかもしれません... –

+0

ボタンタイプは "ボタン"です。 save = "true"はありませんが、フルアップデートを実行しています。ドキュメントを保存するべきではありませんが、document1.save()行に到達するまでは、そうですか? –

0

...その場合は、CSJSで何かをすることの外に、私はこれを助けるために起こっている場合

わからない....あまりにもわからないんだけど、顔をしていますマーキーローデンすることで、この記事で:年末が起動するよう https://xomino.com/2012/03/10/checking-xpages-radio-buttons-have-been-selected-with-jquery/

私は4/5週間のいずれかの開発作業を行っていないので、私の脳イマイチは本当にそれのように作業すべき.....

+0

このソリューションは、私のラジオボタンのgroupNameを取得するためにこれを使用することを示唆していますが、検証を行うにはどこに置くことができますか? –

+0

if($ ["$ name = CHECKBOXGROUPNAME]:checked")のようなことはできませんか?val() = ''){ msgstr "オプションを選択\ n"; } –

関連する問題