1

コンポーネントの値が変更されたときに別のコンポーネントが必須になるように、HTMLページにイベントリスナーがあります。ただし、これは、コンポーネントの値を変更し、ページを保存してリロードした場合にのみ機能します

ページ全体を保存してリロードせずにこれを行う方法はありますか?

@EventListener(targets="licensingStatus", events="onchange")
public void onLicenseStatusChange(IRequestCycle cycle){
....
}

編集:

機能が変わることができます

<input jwcid="licensingApprovalDate@CustomDatePicker"/>

これに

<input jwcid="licensingApprovalDate@CustomDatePicker" validators="validators:maxDateToday"/>
4

4 に答える 4

1

コンポーネントを動的に生成する必要がある場合:

最も単純な実装はを使用してAJAXいます。ページ上の任意のコンポーネントのリスナーを設定できます。変更が発生した場合は、AJAX電話をかけて他のコンポーネントを表示します。

そうしないと:

コンポーネントがすでに存在し、最初に非表示にされていて、表示する必要がある場合は、このコードを使用できます

document.getElementById('other-component').style.visibility='visible'; 

あなたのリスナーで。

編集:

新しいフィールドを必須にするだけの場合は、JavaScriptでチェックを作成して、送信ボタンなどを入力すると、フィールドが空かどうかがチェックされ、空の場合はメッセージが表示されます。ユーザーに。このようなもの:

mystring=document.getElementById('other-component').value; 
if(!mystring.match(/\S/)){
alert ('Empty value is not allowed');
return false;
}else{
 alert ("correct input");
 return true;
}
于 2012-08-23T13:50:54.973 に答える
0

これはAjaxを使用して実装する必要があります。

于 2012-08-23T13:49:35.770 に答える
0

AJAX。jQueryのようなフレームワークを見る価値があるかもしれません。

于 2012-08-23T13:50:45.637 に答える
0

ここでは間違いなくJavascriptを使用してください。データが返されるときに、 AJAXを使用し、個々の要素でgetElementByIdを使用して更新できます。

jQueryはこれを非常に簡単にします。

$.ajax({
  url: "test.html",
  context: document.body
}).done(function() { 
  $("#myDiv").html("New data loaded");
  myGlobalMandatoryField = true;
});

myGlobalMandatoryField別の関数で使用して、フィールドに値が確実に入力されるようにすることができます。

于 2012-08-23T13:54:03.980 に答える