حدث لا يطلقون النار عند استخدام جافا سكريبت لإعادة النشر

StackOverflow https://stackoverflow.com/questions/682079

  •  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 من التشغيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top