2

イベント() を使用して、その「TBXinsertDate」asp:TextBoxコントロールのデフォルト値を設定しようとしていますが、それが問題である場合は、 実際には自分のアクションをそれ自体でオーバーライドしているようです。
focusjsajax watermark Extender

どうすれば自分のデフォルト値を設定できますか?

aspx

<cc1:TextBoxWatermarkExtender  ID="insertDate_TextBoxWatermarkExtender" runat="server" TargetControlID="TBXinsertDate" WatermarkText="insertDate" WatermarkCssClass="WaterMarkedTextBox">
</cc1:TextBoxWatermarkExtender>

<cc1:MaskedEditExtender enabled="true" MaskType="Date" ID="insertDate_MaskedEditExtender" runat="server" BehaviorID="tet"
                                TargetControlID="TBXinsertDate"  InputDirection="LeftToRight"  CultureName="en-GB" 
                                UserDateFormat="None" Mask="99/99/9999" MessageValidatorTip="true"  OnFocusCssClass="maskedFocus" ErrorTooltipEnabled="true" ErrorTooltipCssClass="toolTipForInvalid">
</cc1:MaskedEditExtender>

<asp:TextBox ID="TBXinsertDate" runat="server" ToolTip="please insert date" Width="76px">
                        </asp:TextBox>

そして、私はdatePicker ...を使用できますが、要件は問題のとおりであり、キーボードを使用して手動で設定します。

アップデート

デフォルトは今日の日付である必要があります...2012年12月26日

#2コードを更新

以下は次のとおりです。Javascript+Ajaxデュアルモード透かし

Update3と最も重要なもの

1)このJsコードは私の問題の特別なものではありません...それはその原因でさえありません

2) ASPXからAjax Extenders: validation+を省略しても、問題は発生しません。maskEdit

3)要約すると、問題はデフォルト値=今日の日付を設定することです

そして、私がそのエクステンダーを追加しない場合- validator+Maskedit 私の試みはうまく機能しています!! 値が設定されます。

経験のある人がいれAjax Toolkitば、ここで少し助けてください。

この質問のタイトルも更新します

    var masked = "__/__/____";
    var MultiWatermark = function (obj, options) {

        var defaultOptions = {
            // These variables can be changed to alter functionality using the passed in options object
            watermarkVals: ["insert date", "mmddyyyy"], // all watermark values.
            totalIterations: 20, // how many times to go through watermark Array.
            watermarkClassName: "WaterMarkedTextBox",
            normalClassName: "NormalTextBox",
            changeDelay: 1000, // in milliseconds
            extraValsToCheck: ['', null]// 
        }

        //merge options with defaultOptions
        for (var property in defaultOptions) {
            if (!options.hasOwnProperty(property)) {
                options[property] = defaultOptions[property];
            }
        }

        // local variables (do not change)
        var textBox = obj;
        var iterationCounter = 0;
        var itemCounter = 0;
        var intrId;

        var startWatermark = function () {
            itemCounter = 0; iterationCounter = 0; // resets for after blur
            intrId = setInterval(function () { alterWaterMark() }, options.changeDelay);
        }

        var stopWatermark = function () {
            clearInterval(intrId);
        }

        var alterWaterMark = function () {

            if (iterationCounter < options.totalIterations) {

                textBox.value = options.watermarkVals[itemCounter];
                itemCounter += 1;
                if (itemCounter == options.watermarkVals.length) {
                    itemCounter = 0;
                    iterationCounter += 1;
                }

            }
            else {
                stopWatermark();
            }

        }

        var isWatermarkValue = function (val) {

            var i = options.watermarkVals.length;
            while (i--) {
                if (options.watermarkVals[i] === val) {
                    return true;
                }
            }
            // value is not in watermark array, so check secondary values.
            i = options.extraValsToCheck.length;
            while (i--) {
                if (options.extraValsToCheck[i] === val) {
                    return true;
                }
            }
        }

        var setClass = function () {
            textBox.className = isWatermarkValue(textBox.value) ? options.watermarkClassName : options.normalClassName;

          ///////this is wher i tried to set it <==========
            textBox.value = "26/12/2012";
        }

        var focusEvent = function () {

            stopWatermark();
            if (isWatermarkValue(textBox.value)) {
                textBox.value = "";

          ///////this is where  i was First time  trying to set it <==========

                //alert("was focused");
            }
            setClass()
        }

        var blurEvent = function () {

            if (isWatermarkValue(textBox.value)) {
                startWatermark();
            }
            setClass();

        }

        var initWatermark = function () {
            setClass();
            textBox.onfocus = focusEvent;
            textBox.onblur = blurEvent;
            startWatermark();
        }


        initWatermark();
    }


    function runWatermarkOn(formId, targetid, wm1,wm2,wm3, iterations, delay) {

        var dateOptions = {
            // These variables alter functionality, the main script will use the defaults of any options not included here 
            watermarkVals: [wm1, wm2], // all watermark values.
            totalIterations: iterations,
            changeDelay: delay, // in milliseconds
            extraValsToCheck: ['', null, masked]
        }
        if (wm3!= undefined)
            dateOptions.watermarkVals[2] = arguments[4];
        new MultiWatermark(document.forms[formId].elements[targetid], dateOptions);

    }
    runWatermarkOn("form1", "TBXinsertDate", "insert Date", "dd/mm/yyyy", undefined, 2, 1500);

上記のコードブロックの中央にあるコメントを参照してください。それは私がそれを試していたところです。今日の日付をその価値としてハードコーディングしてみました。そして私が問題に言及していたように。アイデアは、MaskEditExtenderが私の値に乗っているので、私が使用しようとしているjavascriptまたはJqueryは重要ではないということです。

私はここでいくつかの助けに本当に感謝します。

ありがとう

4

1 に答える 1

0

質問のコードが長すぎて読み通せない場合はいつものように、私が解決しました

コードは問題ではありませんでしたが、私が言ったように、私の値をオーバーライドしているのはエクステンダー-MaskEditです。

私が行ったことの回避策として、C#onloadはそのMaskEditを無効にします

    insertDate_MaskedEditExtender.Enabled = false;

およびjavascript

var MaskEdit1 = $('#BEHAVIOR-id' (not the standart one of the extender);
MaskEdit1.disabled = false;
于 2012-12-26T20:05:34.353 に答える