حدث لا يطلقون النار عند استخدام جافا سكريبت لإعادة النشر
-
22-08-2019 - |
سؤال
وأنا أحاول أن استخدام RadSpell Telerik لتدقيق إملائي بعض النص عندما يقوم المستخدم بإرسال ذلك.
وهذا الطريق من المفترض أن العمل هو من خلال وقف إعادة النشر مما ادى الى التدقيق الإملائي من خلال جافا سكريبت، ثم في حال spellcheckfinished يدويا بدء إعادة النشر الحقيقي. والمشكلة هي أن في الخطوة الأخيرة الحدث تم النقر عليه لا يطلقون النار على زر ومعالج الحدث جانب الملقم لم يحصل يسمى.
وهنا هو رمز .aspx اتصال ذات الصلة:
<script type="text/javascript" language="javascript">
var spellCheckFinished = false;
var btnClicked;
function doSpellCheckStuff(btnTrigger)
{
btnClicked = btnTrigger;
var spell = GetRadSpell('<%= rsMessage.ClientID %>');
// spell.add_clientCheckFinished(checkFinished);
spell.startSpellCheck();
return false;
}
function checkFinished(sender, args)
{
args.SuppressCompleteMessage = true;
setTimeout('MySubmit();', 100);
}
function MySubmit()
{
WebForm_DoPostBackWithOptions(
new WebForm_PostBackOptions(btnClicked.id, '', true, '', '', false, true)
);
}
</script>
<tr>
<td>
<asp:Button ID="btnSubmit" OnClientClick="return doSpellCheckStuff(this);" Text="Submit"
OnClick="btnSubmit_Click" runat="server" />
</td>
<telerik:RadSpell ID="rsMessage" ControlToCheck="txtMessage" ButtonType="None"
UseClassicDialogs="true" FragmentIgnoreOptions="All"
OnClientCheckFinished="checkFinished" runat="server" />
</tr>
وأي فكرة لماذا لم يتم الحصول على ودعا btnSubmit_Click وكيف يمكنني إصلاحه؟
المحلول
ومحاولة لحقن النصي إعادة النشر الخاصة بك على النحو التالي:
string script = @"function MySubmit(){" +
this.Page.ClientScript.GetPostBackEventReference(myButton, string.Empty);
"}";
if (!this.Page.ClientScript.IsClientScriptBlockRegistered("myPostBackScript"))
{
this.Page.ClientScript.RegisterClientScriptBlock(typeof(MyPage), "myPostBackScript", script, true);
}
نصائح أخرى
وكان آخر مثل من doSpellCheckStuff () يعود كاذبة دائما، والتي يتوقف المستمع الحدث OnClick من التشغيل.
لا تنتمي إلى StackOverflow