イベント()
を使用して、その「TBXinsertDate」asp:TextBox
コントロールのデフォルト値を設定しようとしていますが、それが問題である場合は、
実際には自分のアクションをそれ自体でオーバーライドしているようです。focus
js
ajax 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は重要ではないということです。
私はここでいくつかの助けに本当に感謝します。
ありがとう