0

しばらくウェブを検索しましたが、質問に対する簡単な答えが見つかりませんでした。そこで、日付と時刻の種類が記載されたSharepointリストを作成し、新しい要素を追加するためのカスタムフォームを作成しました。フォーム上で、次のようにDateTimeFieldを作成しました。

<SharePoint:DateTimeField runat="server" id="ff_Order_Asset_DeliveryDate" FieldName="DeliveryDate"  />

そして、すべてがうまく機能します。選択した日付は過去のものではないため、検証を追加したいと思います。現在の日付と比較する必要があります。PreSaveActionを使用してJavaScriptで実行したいのですが、問題は、コントロールから日付値を取得する方法がわからないことです。私はこのようなことを試しました:

var dateSelected = document.getElementById("<%=ff_Order_Asset_DeliveryDate.ClientID%>");
var dateFromSelection = new Date(dateSelected.value);
var dateNow = new Date();
if (dateFromSelection < dateNow)
doSomething();

しかしもちろん、それは機能しません。どうすればそれができるのか教えてください。とても感謝しています!

- - - - - - - - - - - - - - - - 答え - - - - - - - - - --------------------

誰かが気にかけている場合:私がすべきことは、次のjQuery構文を使用することだけであるように思われます。

var dateSelected = $('input[id*="ff_Order_dFAsset_DeliveryDate"]');

Mark Oretaが言ったように、Sharepointは私のコントロールのIDに多くを追加しました。

4

4 に答える 4

1

列の検証を使用することに反対していますか?もしそうなら、私はそのように検証することをお勧めします。

javascriptが唯一のオプションである場合、SharePointがフォームの生成時にアイテムのIDに大量のデータを追加するため、テキストボックスを選択するほど簡単ではありません。あなたが投稿したものに基づいて、あなたはフォームを抽出したように見えるので、私がすることは、入力がdiv内で生成され、そのように配置されるようにスパンをラップすることです。

<span id="span-dateselected">
 <SharePoint:DateTimeField runat="server" id="ff_Order_Asset_DeliveryDate" FieldName="DeliveryDate"  />
</span>

次に、JavaScriptでスパンを見つけ、次に入力を見つける必要があります。

var dateFromSelection = document.getElementById("span-dateselected").getElementsByTagName("input")[0].value;

上記のコードスニペットは、適切な場合と適切でない場合があるいくつかの仮定を行っているため、JavaScriptが入力を正しく検出したことをテストすることをお勧めします。生成されたリストを反復処理するためにJqueryを使用することをお勧めしますが、それはあなたにとってオプションではないかもしれません。

于 2012-08-02T20:47:20.497 に答える
1

誰かが気にかけている場合:私がすべきことは、次のjQuery構文を使用することだけであるように思われます。

var dateSelected = $('input[id*="ff_Order_dFAsset_DeliveryDate"]');

Mark Oretaが言ったように、Sharepointは私のコントロールのIDに多くを追加しました。

于 2015-05-27T09:58:54.570 に答える
0

以下のコードを試しましたか?

var dateSelected = document.getElementById("ff_Order_Asset_DeliveryDate.ClientID");

ASpタグなし?

于 2012-07-31T15:25:32.557 に答える
0

日時フィールドコントロールは使用しないでください。以下のURLを参照して ください。http ://www.entwicklungsgedanken.de/2009/08/21/do-not-use-datetimefield-when-displaying-the-date-of-your-field/

于 2013-02-19T06:18:42.420 に答える