الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اجعل الرقم يتحول الى صيغه ارقام ماليه (تقنيع)

بدأه my choice في 18 مايو 2010 · 21 رد · 1,312 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

احتاج الى كود لجعل الارقام تكون على شكل صيغه فلوس اي رقم ثم الفواصل ثم ( ر. س ) اي عندي textbox في الصفحه ويقوم المستخدم بادخال رقم مثلا(ادخال الراتب الشهري)حيدخل 5000

انا ابغى بعد ما ينتهي المستخدم من ادخال الرقم يصبح الرقم ( 5,000 ر.س) في التيكست اي ينعمل لرقم تقنيع ويكون بهذه الصيغه كيف يكون هاذا الكود؟؟؟؟؟؟

ارجو المساعده

#2
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">
    function check()
    {
    var x=document.getElementById("TextBox1").value;
    document.getElementById("TextBox1").value="ر.س"+x;
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server" onblur="check();"></asp:TextBox></div>
    </form>


</html>

استخدم الجافا سكريبت طبعا انا بالمثال هذا يتم اضافة النص الاضافي بعد الخروج من التيكيست بوكس ان اردت ان تجربها انقر خارج التيكيست بوكس

In bad state

#3

السلام عليكم ورحمه الله وبركاته

شكرا جزيلا على الرد

قمت بتجريب الكود لا يعمل فواصل بعد ادخال الرقم في التيكست فقط يضع ر.س

انا كمان ابغى الفواصل مثلا 1000,000ر.س

وبعد مايتم ادخال الرقم ويصبح بالفواصل ور.س بعد الادخال اذا المستخدم حط المؤشر على التيكست مره ثانيه تمسح القيمه الللي ادخلها المره الاولى لكي يدخل القيمه الجديده

وعند ظهور التيكس لأول مره اي عند الرن يكون داخل التيكست 0ر.س

وعذراعلى الاطاله

وبارك الله فيك

#4
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">
    function check()
    {

    var x=document.getElementById("TextBox1").value;
    if(x=="")
    {
    init()
    }
    else
    {

    document.getElementById("TextBox1").value="ر.س"+x;
    }
    }
    function init()
    {
    document.getElementById("TextBox1").value="ر.س0"
    }
    function fo()
    {
    document.getElementById("TextBox1").value=""
    }

  </script>
</head>
<body onload="init()">
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server" onblur="check();" onfocus="fo()"></asp:TextBox></div>
    </form>


</html>

بقي شيء ان شاء الله اكمله اليوم او غدا

In bad state

#5

بارك الله فيك وبانتظار التكمله..

شكراا جزيلا.

#6

السلام عليكم

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">
    function formatCurrency(num) {
    var x=document.getElementById("TextBox1").value;
    if(x=="")
    {
        init()
    }
    else
    {
        num = num.toString().replace(/\$|\,/g,'');
        if(isNaN(num))
        num = "0";
        sign = (num == (num = Math.abs(num)));
        num = Math.floor(num*100+0.50000000001);
        cents = num%100;
        num = Math.floor(num/100).toString();
        if(cents<10)
        cents = "0" + cents;
        for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+','+
        num.substring(num.length-(4*i+3));
        return (((sign)?'':'-') + 'رس' + num + '.' + cents);
    }
    }

    function init()
    {
    document.getElementById("TextBox1").value="ر.س0"
    }

    function fo()
    {
    document.getElementById("TextBox1").value=""
    }

    </script>
</head>
<body onload="init()">
    <form id="form1" runat="server">
    <div>

        <asp:TextBox ID="TextBox1"  onchange="this.value=formatCurrency(this.value)" runat="server"  onfocus="fo()"
            ></asp:TextBox>



    </div>
    </form>
</body>
</html>

هل تم تحقيق المطلوب صديقي

اظن انه تم تحقيق المطلوب

In bad state

#7

شكرا جزيلا نعم هاذا هو المطلوب

لكن هناك ملاحظه صغيره انه يتم اضافه صفرين لأي عدد ادخله مثلا 100000ر.س بعد الادخال تصبح,00 1000,000ر.س لماذا هناك زياد صفرين لاي عدد يتم ادخاله؟؟؟؟؟؟؟؟؟

ملاحظه صغيره اخرى لو تكرمت كلمه (ر.س) اريدها في اليسار اي اولا العدد ويليه الكلمه؟؟

بارك الله فيك

#8
return (((sign)?'':'-')  + num + '.' + cents+ 'رس');

صديقي لا يهم ذلك الامر ان احببت اضف شرط على ازالته ولكن لا ارى ضرورة لازالته

ان احببت ازيله لك

تم تعديل هذه المشاركة بواسطة AsJsGle في 23 مايو 2010 في 15:46

In bad state

#9

ارجو منك ذلك .. ارجو ازاله الصفرين..

وشكرااا جزيلا..

#10
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
     <script type="text/javascript">
function formatCurrency(num)
{
var x=document.getElementById("TextBox1").value;
if(x=="") 
{    
init() 
}  
else 
{   
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))  
num = "0";   
sign = (num == (num = Math.abs(num)));  
num = Math.floor(num*100+0.50000000001); 
num = Math.floor(num/100).toString();  
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)  
num = num.substring(0,num.length-(4*i+3))+','+        num.substring(num.length-(4*i+3)); 
return (((sign)?'':'-')  + num +  'رس'); 
}
} 
function init()    
{    document.getElementById("TextBox1").value="ر.س0"  
}  
function fo()  
{    document.getElementById("TextBox1").value=""  
}   
</script>
</head><body onload="init()">    <form id="form2" runat="server">    <div>          
<asp:TextBox ID="TextBox1"  onchange="this.value=formatCurrency(this.value)" runat="server"  onfocus="fo()"></asp:TextBox>             
 </div>    </form></body>

In bad state

#11

الله يجزاك الخير

شكرا شكرا جزيلا..

بارك الله في عملك..

ولدي استفسار وان شاء الله يكون الاخير انا عندي في الصفحه ما يقارب 14 textbox

وفي الكود في head كتبت textbox1 يعني هاذا الكود يطبق على مربع ادخال واحد

طيب لما يكون لدي اكثر من مربع ادخال كيف يتم ذلك؟

عذرا على كثره الاسئله..؟

تم تعديل هذه المشاركة بواسطة my choice في 24 مايو 2010 في 23:49

#12
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
     <script type="text/javascript">
function formatCurrency(num)
{
var x=document.getElementById("TextBox1").value;
if(x=="") 
{    
init() 
}  
else 
{   
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))  
num = "0";   
sign = (num == (num = Math.abs(num)));  
num = Math.floor(num*100+0.50000000001); 
num = Math.floor(num/100).toString();  
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)  
num = num.substring(0,num.length-(4*i+3))+','+        num.substring(num.length-(4*i+3)); 
return (((sign)?'':'-')  + num +  'رس'); 
}
} 
function init()    
{    document.getElementById("TextBox1").value="ر.س0"  
}  
function fo(id)  
{    document.getElementById(id).value=""  
}   
</script>
</head><body onload="init()">    <form id="form2" runat="server">    <div>          
<asp:TextBox ID="TextBox1"  onchange="this.value=formatCurrency(this.value)" runat="server"  onfocus="fo(this.id)"></asp:TextBox>             
 </div>    </form></body>

صديقي استفد من this.id اي انظر لهذا المثال جيدا

ولا يهمك اسال كما تريد

In bad state

#13

يظهر خطأ عندما اعمل رن للصفحه والخطأ هو

A page can have only one server-side Form tag.

والمشكله الله اعلم من عباره

<form id="form2" runat="server">

لما احذف هاذا السطر الصفحه تشتغل لكن طبعا الكود غير شغال

وعند وجود هذه العباره يظهر خطأ ولا تنفذ الصفحه؟؟

انا لدي صفحه فيها جدول يحتوي على بيانات وبجنب كل بيان يوجد textbox لادخال القيم الماليه يوجد 14 text box

؟؟؟

ماهو الحل؟؟

ولك جزيل الشكر..

#14

هل يمكنك ارفاق الكود ؟؟؟

In bad state

#15
    <%@ Page Language="C#" MasterPageFile="~/page/MasterPage.master" AutoEventWireup="true" CodeFile="budget.aspx.cs" Inherits="page_budget" Title %>

<asp:Content ID="Content2" ContentPlaceHolderID="content" Runat="Server">



    <br/>


       <table  style="position: relative; left:-3px; top: -20px; right: 0px;" id="budget" 
            dir="rtl">
        <tr >
            <td class="style2" >
                الفئة</td>

            <td class="style5" > 
                القيمة المتوقعة   </td>

        </tr>

        <tr>
            <td class="style2"  >
               السكن</td>

            <td class="style5">
                <asp:TextBox ID="txtHouse" runat="server" Width="91px"></asp:TextBox>





                </td>


        </tr>
        <tr>
            <td class="style1">
                المواصلات</td>

            <td>
                <asp:TextBox ID="txtTransp" runat="server" Width="91px"></asp:TextBox>



                 </td>

        </tr>
        <tr>
            <td class="style1">
                مواد غذائية </td>

            <td>
                <asp:TextBox ID="txtFoud" runat="server" Width="91px"></asp:TextBox>

                ر.


                </td>
        </tr>

        <tr>
            <td class="style1">
               فاتورة الماء</td>

            <td>
                <asp:TextBox ID="txtWatBill" runat="server" Width="91px"></asp:TextBox>




                </td>
        </tr>
        <tr>
            <td class="style1">
               فاتورة الكهرباء</td>

            <td>
                <asp:TextBox ID="txtElcBill" runat="server" Width="91px"></asp:TextBox>




                </td>
        </tr>
        <tr>

            <td class="style2"  >
                فاتورة الهاتف</td>
            <td>
                <asp:TextBox ID="txtTelBill" runat="server" Width="91px"></asp:TextBox>



                </td>
        </tr>
        <tr>
            <td class="style2"  >
               التعليم</td>

            <td>
                <asp:TextBox ID="txtlern" runat="server" Width="91px"></asp:TextBox>



                </td>
        </tr>




    </table>


    </asp:Content>

هذا الكود في صفحة asp.net مرتبطة ب master page

#16

السلام عليكم

اتمنى ان يحقق هذا المطلوب

اتمنى ان تدرس المثال

WebSite2.rar

In bad state

#17

يعطيك العافية

طبقت الكود ولكن لدي سؤال

انا احتاج لجمع القيم المدخله في كل text box

فهل سيؤثر التقنيع على عملية الجمع ؟؟ واذا كان يؤثر فما الحل ؟؟

#18

اخي الكريم التقنيع لا يؤثر على شيء وخاصة ان الجافا سكريبت عند التحويل لاتهتم بما تحوي السلسلة النصية اي

1ل2

يكون الناتج 12

يعني المترجم بياخذ الارقام وبيهمل المحارف

بكل الاحوال فرمتت حاسبي لحمل الملف وجربو برفعلك ياه

WebSite2.rar

تم تعديل هذه المشاركة بواسطة AsJsGle في 30 مايو 2010 في 21:00

In bad state

#19

السلام عليكم

الكود جدا رائع ولكن يعمل مشاكل عند جمع قيمة text box1 + textbox2

وذالك بسبب ( رس) لانها سترينغ وعملية الجمع تتم على int

كيف احل هذه المشكلة ؟؟

#20

صديقي بالمثال لا يوجد اي خطا لا اذا غيرت الid

لمهم لتحويل من نصي الى رقمي

parseInt(document.getElementById("textbox1").value)+parseInt(document.getElementById("textbox2").value);

In bad state

#21

جزاك الله خير

#22

جزاني واياك والمسلمين اجمعين

In bad state

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…