PDA

View Full Version : سوال: مدیریت onclick با onclientclick



aminmorteza
سه شنبه 30 آبان 1391, 21:50 عصر
سلام دوستان من تویه سایتم یک فرم ثبت نام درست کردم که از validation ها برای کنترل مقادیر ورودی استفاده کردم تویه حالت معمولی مشکلی نداره و کار میکنه من تویه فرم از یک jquery captcha اسفاده کردم که میخوام وقتی دکمه ثبت نام زده میشه اول چک بکنه که capthca درست هست یا نه . این کار رو با onclientclick انجام دادم ولی مشکل اینکه که دیگه فرم رو validate نمیکنه و فرم به سمت سرور فرستاده میشه من همچین از یک updatepanel هم برای تکس باکس استفاده کردم که وقتی کاربر نام کاربریش را وارد میکنه میره سمت سرور چک میکنه که آیا این نام کاربری قابل استفاده هست یا نه کدهاش رو هم داخل رویداد textchanged نوشتم که جواب میده ولی مشکل اینه که دوباره تکس باکس username رو validate نمیکنه و نام کاربری به سمت سرور فرستاده میشه و داخل جدول ذخیره میشود من میخوام که کاربر وقتی رویه دکمه ثبت کلیک کرد علاوه بر validate کردن تکس باکس ها یک کد جاواسکریبپ رو هم چک بکنه که ماله jquery captcha هستش اگه درست بود اطلاعات به سمت سرور فرستاده بشه و اگه درست نبود فرستاده نشد و همچینین برای تکس باکس username هم validation رو انجام بده از دوستان ممنون میشم راهنمایی کنید کدهایی که استفاده کردم اینها هستند با عرض معذرت یه کم طولانی هستش.




<script type="text/javascript">
(
function ($) {

$.fn.shuffle = function () {
return this.each(function () {
var items = $(this).children();

return (items.length)
? $(this).html($.shuffle(items, $(this)))
: this;
});
}

$.fn.validate = function () {
var res = false;
this.each(function () {
var arr = $(this).children();
res = ((arr[0].innerHTML == "1") &&
(arr[1].innerHTML == "2") &&
(arr[2].innerHTML == "3") &&
(arr[3].innerHTML == "4") &&
(arr[4].innerHTML == "5") &&
(arr[5].innerHTML == "6"));
});
return res;
}

$.shuffle = function (arr, obj) {
for (
var j, x, i = arr.length; i;
j = parseInt(Math.random() * i),
x = arr[--i], arr[i] = arr[j], arr[j] = x
);
if (arr[0].innerHTML == "1") obj.html($.shuffle(arr, obj))
else return arr;
}

})(jQuery);

$(function () {
$("#sortable").sortable();
$("#sortable").disableSelection();
$('ul#sortable').shuffle();


});
function Validate () {

if(!($('ul#sortable').validate())) {
ShowErrorBox("خطا", "کاربر گرامی اعداد وارد شده صحیح نمی باشد لطفا اعداد یک تا شش را از چپ به راست به ترتیب مرتب نمایید.");

return false;
}


}

// $(document).ready(function () {
// var ResponseStatus = GetHeader_se('ResponseStatus');
// if (ResponseStatus != "") {
// ShowAlertMessage("al", "al", "ald");
// }
// });
</script>

<div id="carbonForm">

<h1>ثبت نام در وب سایت</h1>



<div class="fieldContainer">

<div class="formRow">
<div class="label">
<label for="name">نام:</label>
</div>

<div class="field">
<asp:TextBox ID="TextBox4" lang="fa" CssClass="input" runat="server"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
runat="server" ErrorMessage="لطفا نام خود را با حروف فارسی وارد نمایید"
ValidationExpression="^[ا-یءئ]{3,}(\s{1}[ا-یءئ]+)*$"
ControlToValidate="TextBox4" ValidationGroup="1250" CssClass="errorTip"
SetFocusOnError="True"></asp:RegularExpressionValidator>
</div>
<asp:RequiredFieldValidator CssClass="errorTip" ID="RequiredFieldValidator1" runat="server"
ErrorMessage="لطفا نام خود را وارد نمایید"
ControlToValidate="TextBox4" SetFocusOnError="True" ValidationGroup="1250"></asp:RequiredFieldValidator>
</div>

<div class="formRow">
<div class="label">
<label for="email">نام کاربری :</label>
</div>

<div class="field">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox3" ValidationGroup="1250" CssClass="input" runat="server"
ontextchanged="TextBox3_TextChanged" AutoPostBack="True"></asp:TextBox><br />
<div style="width:100%">
<asp:Label ID="LblCheck" runat="server" Text="Label" Visible="False"></asp:Label>
<asp:Image ID="Image1" runat="server" Visible="False" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:RegularExpressionValidator SetFocusOnError="True" ID="RegularExpressionValidator2" runat="server"
ErrorMessage="نام کاربری باید حداقل 4 و حداکثر 15 کارکتر و با حروف [a-zA-Z0-9_.] باشد."
ControlToValidate="TextBox3" ValidationExpression="[a-zA-Z0-9]{4,15}([._]?[a-zA-Z0-9]+)*"
ValidationGroup="1250" CssClass="errorTip"></asp:RegularExpressionValidator>
</div>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ControlToValidate="TextBox3" CssClass="errorTip"
ErrorMessage="لطفا نام کاربری را وارد نمایید" ValidationGroup="1250"></asp:RequiredFieldValidator>
</div>

<div class="formRow">
<div class="label">
<label for="pass">رمز عبور :</label>
</div>

<div class="field">
<asp:TextBox ID="TextBox2" CssClass="input" runat="server" TextMode="Password"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3"
runat="server" ErrorMessage="رمز عبور باید حداقل 6 و حداکثر 15 کاراکتر و با حروف یا اعداد[a-zA-Z0-9@&#!._]باشد "
ControlToValidate="TextBox2" ValidationExpression="[a-zA-Z0-9@&#!._\s]{6,15}" ValidationGroup="1250" CssClass="errorTip"></asp:RegularExpressionValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server"
ErrorMessage="رمز عبور و تکرار آن شباهتی ندارند"
ControlToCompare="TextBox1" ControlToValidate="TextBox2"
ValidationGroup="1250" CssClass="errorTip"></asp:CompareValidator>
</div>

<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ControlToValidate="TextBox2" CssClass="errorTip"
ErrorMessage="لطفا رمز عبور را وارد نمایید"
ValidationGroup="1250"></asp:RequiredFieldValidator>

</div>

<div class="formRow">
<div class="label">
<label for="pass">تکرار رمز عبور: </label>
</div>

<div class="field">
<asp:TextBox ID="TextBox1" CssClass="input" runat="server" TextMode="Password"></asp:TextBox>





</div>

</div>
<div class="formRow">
<div class="label">
<label for="pass">ایمیل :</label>
</div>

<div class="field">
<asp:TextBox ID="TextBox5" CssClass="input" runat="server"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator5"
runat="server" ErrorMessage="ایمیل خود را درست وارد نمایید"
ControlToValidate="TextBox5"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ValidationGroup="1250" CssClass="errorTip"></asp:RegularExpressionValidator>

</div>

<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server"
ControlToValidate="TextBox5" CssClass="errorTip"
ErrorMessage="لطفا ایمیل خود را وارد نمایید" ValidationGroup="1250"></asp:RequiredFieldValidator>

</div>
<div class="formRow">
<div class="label">
<label for="pass">وب سایت :</label>
</div>

<div class="field">
<asp:TextBox ID="TextBox6" CssClass="input" runat="server"></asp:TextBox>


<asp:RegularExpressionValidator ID="RegularExpressionValidator6"
runat="server" ErrorMessage="لطفا آدرس وب سایت خود را صحیح وارد نمایید http(s)://WebsiteAddress"
ControlToValidate="TextBox6"
ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?"
ValidationGroup="1250" CssClass="errorTip" SetFocusOnError="True"></asp:RegularExpressionValidator>

</div>

<div>




</div>

</div>
<div class="formRow">
<label>کاربر گرامی لطفا اعداد یک تا شش را به ترتیب از چپ به راست به وسیله موس درگ و مرتب نمایید.</label>
</div>

<div style="height:120px;padding-top:20px; padding-right:180px;">

<div class="captcha_wrap">
<div class="captcha">
مرتب نمایید
</div>
<ul id="sortable">
<li class="captchaItem">1</li>
<li class="captchaItem">2</li>

<li class="captchaItem">3</li>
<li class="captchaItem">4</li>
<li class="captchaItem">5</li>
<li class="captchaItem">6</li>
</ul>
</div>
</div>
<br />
<asp:Label ID="LabelMessage" runat="server" Font-Bold="True"
ForeColor="#CC0000"></asp:Label>
<br />
<br />
</div> <!-- Closing fieldContainer -->

<div class="signupButton">
<asp:Button ID="submit" CssClass="submit" runat="server" onclick="submit_Click" OnClientClick="JavaScript: return Validate();"
ValidationGroup="1250" />
</div>




</div>

aminmorteza
پنج شنبه 02 آذر 1391, 22:20 عصر
از دوستان کسی نیست راهنمایی کنه.چرا هیچ کس سوالات بنده رو جواب نمیده