Note that there are some explanatory texts on larger screens.

plurals
  1. POError with webforms validation when sending click() from jQuery
    primarykey
    data
    text
    <p>I have developed a Chrome extension that enters a number into an input field and then clicks a button. It worked fine until the target website started to use WebForms validation (I think). Entering the value and then manually clicking the OK button works fine, how can I emulate this behaviour programmatically?</p> <p>My method:</p> <pre><code>$('#valueField').val(value); $('#okButton').click(); </code></pre> <p>Exception from Javascript console:</p> <pre><code>Error in event handler for 'undefined': Object [object global] has no method '_ValidationSummaryOnSubmit' TypeError: Object [object global] has no method '_ValidationSummaryOnSubmit' at window.ValidationSummaryOnSubmit (https://secure3.skandiabanken.se/UI/Script/Core/Jquery/Validation/Validation.js?2.1.0.4:1:570) at Page_ClientValidate (https://secure3.skandiabanken.se/WebResource.axd?d=TQl_45lQl5IYnwb5P1nM-SzV…V9fbLp8rNqbZHpUJEW8_Ic7iJXC7haRyFmGtkyzRSo0fTQ1&amp;t=634967428818384649:122:5) at WebForm_DoPostBackWithOptions (https://secure3.skandiabanken.se/WebResource.axd?d=UGn3VmeniFVT9-soGkd6Rewz…6R0Sc-xgyUag1XOlfrpjMSnBeHuqg8IzaJ1Ze5c1YwlIgE1&amp;t=634967428818384649:14:32) at HTMLInputElement.onclick (https://secure3.skandiabanken.se/UI/Pages/Payment/Payments.aspx:422:831) at Object.f.event.trigger (chrome-extension://aicobpcnbdifilefkjabflphkdmjlohb/jquery-1.7.2.min.js:3:3465) at HTMLInputElement.&lt;anonymous&gt; (chrome-extension://aicobpcnbdifilefkjabflphkdmjlohb/jquery-1.7.2.min.js:3:11098) at Function.e.extend.each (chrome-extension://aicobpcnbdifilefkjabflphkdmjlohb/jquery-1.7.2.min.js:2:11776) at e.fn.e.each (chrome-extension://aicobpcnbdifilefkjabflphkdmjlohb/jquery-1.7.2.min.js:2:8304) at f.fn.extend.trigger (chrome-extension://aicobpcnbdifilefkjabflphkdmjlohb/jquery-1.7.2.min.js:3:11074) at f.fn.(anonymous function) [as click] (chrome-extension://aicobpcnbdifilefkjabflphkdmjlohb/jquery-1.7.2.min.js:3:11871) event_bindings:346 </code></pre> <hr> <p><strong>Edit: Adding some code from the target website (not really sure what to include though)</strong></p> <p>This is the OK button:</p> <pre><code>&lt;input coreValidationGroup="vgMain" coreCausesValidation="True" type="image" name="okButton" id="okButton" class="coreMwa ShowProgressBar" src="ok.png" alt="OK" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&amp;quot;okButton&amp;quot;, &amp;quot;&amp;quot;, true, &amp;quot;vgMain&amp;quot;, &amp;quot;&amp;quot;, false, false))" /&gt; </code></pre> <p>This is the script Validation.js:</p> <pre><code>$(document).ready(function () { var a = { inputDefaultCssClass: "inputDefault", inputErrorCssClass: "inputError", checkBoxErrorCssClass: "checkBoxError", labelErrorCssClass: "labelError" }; if (window.ValidatedTextBoxOnKeyPress &amp;&amp; !window._ValidatedTextBoxOnKeyPress) { window._ValidatedTextBoxOnKeyPress = window.ValidatedTextBoxOnKeyPress; window.ValidatedTextBoxOnKeyPress = function () { return true } } if (window.ValidationSummaryOnSubmit &amp;&amp; !window._ValidationSummaryOnSubmit) { window._ValidationSummaryOnSubmit = window.ValidationSummaryOnSubmit; window.ValidationSummaryOnSubmit = function (h) { window._ValidationSummaryOnSubmit(h); if (typeof Page_ValidationSummaries == "undefined") return; for (var f = 0; f &lt; Page_ValidationSummaries.length; f++) { var c = Page_ValidationSummaries[f], e = $(c).parent().parent().parent().parent().parent(); if (e) { var j = e.is(".validationSummaryContainer"); if (!Page_IsValid &amp;&amp; IsValidationGroupMatch(c, h)) { if (!j) if ($(c).hasClass("showDividerLine")) $(c).wrap("&lt;div class='validationSummaryContainer dividerline'&gt;&lt;div class=validationSummary&gt;&lt;div class=l1&gt;&lt;div class=l2&gt;&lt;div class=l3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;"); else $(c).wrap("&lt;div class='validationSummaryContainer'&gt;&lt;div class=validationSummary&gt;&lt;div class=l1&gt;&lt;div class=l2&gt;&lt;div class=l3&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;") } else j &amp;&amp; e.replaceWith($(c)) } } var g; if (Page_Validators) for (i = 0; i &lt; Page_Validators.length; i++) { g = Page_Validators[i]; var b = $("#" + g.controltovalidate); if (b) { var d = $("label[for='" + b.attr("id") + "']"), k = b.prop("Validators"); if (AllValidatorsValid &amp;&amp; AllValidatorsValid(k)) { if (!b.is("input:checkbox")) if (b.hasClass(a.inputErrorCssClass)) { b.removeClass(a.inputErrorCssClass); b.addClass(a.inputDefaultCssClass) } if (d) d.hasClass(a.labelErrorCssClass) &amp;&amp; d.removeClass(a.labelErrorCssClass) } else { if (!b.is("input:checkbox")) if (!b.hasClass(a.inputErrorCssClass)) { b.removeClass(a.inputDefaultCssClass); b.addClass(a.inputErrorCssClass) } if (d)!d.hasClass(a.labelErrorCssClass) &amp;&amp; d.addClass(a.labelErrorCssClass) } } } } } }) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload