Showing posts with label Jquery. Show all posts
Showing posts with label Jquery. Show all posts

Wednesday, September 4, 2019

How get selected value and text from dropdown on select event using jquery



<html>
<head>
    <title>How get selected value and text from dropdown on select event using jquery</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
    <script>
        $(function () {
            $("#selectedId").change(function () {
                var selectedValue = $(this).val();
                var selectedText = $("#selectedId option:selected").html()

                alert("selected Value "+selectedValue+" selected Text "+selectedText);
            });
        });
    </script>
</head>
<body>
    <div style='padding: 2rem; text-align: center;'>
        Select option :
        <select id="selectedId">
            <option value="0">----Choose Option--- </option>
            <option value="1">Text 1 </option>
            <option value="2">Text 2 </option>
            <option value="3">Text 3 </option>
        </select>
        <br>
        <label id="txtContent" style="color: green;"></label>
    </div>
</body>
</html>




Friday, August 23, 2019

Range slider using jquery ui


<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Range Slider</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" />
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js"></script>
    <script>
        $(function () {
            var divSlider = $("#slider");
            divSlider.slider({
                range: true,
                min: 1,
                max: 100,
                values: [1, 100],
                slide: function (event, ui) {
                    $("#txtMinRange").val(divSlider.slider('values', 0));
                    $("#txtMaxRange").val(divSlider.slider('values', 1));
                },
                stop: function (event, ui) {
                    $("#txtMinRange").val(ui.values[0]);
                    $("#txtMaxRange").val(ui.values[1]);
                }
            });
             $("#txtMinRange").val(divSlider.slider('values', 0));
             $("#txtMaxRange").val(divSlider.slider('values', 1));
            $("#slider").animate({
                background: 'blue',
                width: 700,

            }, 1000);
        });
    </script>


</head>
<body>
    <form id="form1" runat="server">
        <div>
            <div style="padding: 2rem;width:100%;">
                <input type="text" id="txtMinRange" style="width:10%;float:left;" />
                <div id="slider" style="width: 75%;float:left;margin-left:1rem;margin-right:1rem;"></div>
                <input type="text" id="txtMaxRange" style="width:10%;float:left;" />
            </div>
        </div>
    </form>
</body>
</html>




Wednesday, July 10, 2019

Performing Calculations in a Table using javascript and jquery


In this article i have explain how to perform the calucation in the table which input field when we are enter any number into the input field calucation will be perform.




<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Performing Calculations in a Table</title>
<script src="assets/js/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $('.cpm, .impression, .ctr,.vtr,.uniqueReachPercent,.uniqueReach,.KPIImpact,.MinImpact').prop('readonly', true);
            var $tblrows = $("#tblMediaOptimizer tbody tr");
            $tblrows.each(function (index) {
                var $tblrow = $(this);
                $tblrow.find('.budget').on('change keyup paste', function () {
                    var budget = $tblrow.find("[name=budget]").val();
                    var cpm = $tblrow.find("[name=cpm]").val();
                    var impression = parseInt(budget, 10) * parseFloat(cpm);
                    if (!isNaN(impression)) {
                        $tblrow.find('.impression').val(impression.toFixed(0));
                        var grandTotal = 0;
                        $(".impression").each(function () {
                            var stval = parseFloat($(this).val());
                            grandTotal += isNaN(stval) ? 0 : stval;
                        });
                        $('.grdtot').val(grandTotal.toFixed(2));
                    }
                });
            });
        });
    </script>
</head>
<body>
<h2>Performing Calculations in a Table</h2>
<p>Enter a number in the Budget Column
and hit tab
</p>
    <table id="tblMediaOptimizer">
<thead>
<tr>
<td>Ad Name</td>
<td>Ad Type</td>
<td>Budget</td>
<td>CPM</td>
    <td>Impression</td>
<td>CTR</td>
<td>VTR</td>
<td>Unique Reach %</td>
    <td>Unique Reach</td>
<td>KPI Impact</td>
<td>Min Impact</td>
</tr>
</thead>
<tbody>
<tr>
<td>ad 1</td>
    <td> typ 1</td>
<td><input type="text" class="budget" value="100" name="budget"/></td>
    <td><input type="text" class="cpm" value="2" name="cpm"/></td>
<td><input type="text" class="impression" value="1000" name="impression"/></td>
    <td><input type="text" class="ctr" value="220" name="ctr"/></td>
    <td><input type="text" class="vtr" value="220" name="vtr"/></td>
    <td><input type="text" class="uniqueReachPercent" value="220" name="uniqueReachPercent"/></td>
    <td><input type="text" class="uniqueReach" value="220" name="uniqueReach"/></td>
    <td><input type="text" class="KPIImpact" value="220" name="KPIImpact"/></td>
<td><input type="text" class="MinImpact" value="220" name="MinImpact"/></td>
</tr>
<tr>
<td>ad 1</td>
    <td> typ 1</td>
<td><input type="text" class="budget" value="100" name="budget"/></td>
    <td><input type="text" class="cpm" value="2" name="cpm"/></td>
<td><input type="text" class="impression" value="1000" name="impression"/></td>
    <td><input type="text" class="ctr" value="220" name="ctr"/></td>
    <td><input type="text" class="vtr" value="220" name="vtr"/></td>
    <td><input type="text" class="uniqueReachPercent" value="220" name="uniqueReachPercent"/></td>
    <td><input type="text" class="uniqueReach" value="220" name="uniqueReach"/></td>
    <td><input type="text" class="KPIImpact" value="220" name="KPIImpact"/></td>
<td><input type="text" class="MinImpact" value="220" name="MinImpact"/></td>

</tr>
<tr>
<td>ad 1</td>
    <td> typ 1</td>
<td><input type="text" class="budget" value="100" name="budget"/></td>
    <td><input type="text" class="cpm" value="2" name="cpm"/></td>
<td><input type="text" class="impression" value="1000" name="impression"/></td>
    <td><input type="text" class="ctr" value="220" name="ctr"/></td>
    <td><input type="text" class="vtr" value="220" name="vtr"/></td>
    <td><input type="text" class="uniqueReachPercent" value="220" name="uniqueReachPercent"/></td>
    <td><input type="text" class="uniqueReach" value="220" name="uniqueReach"/></td>
    <td><input type="text" class="KPIImpact" value="220" name="KPIImpact"/></td>
<td><input type="text" class="MinImpact" value="220" name="MinImpact"/></td>

</tr>
<tr>
<td>ad 1</td>
    <td> typ 1</td>
<td><input type="text" class="budget" value="100" name="budget"/></td>
    <td><input type="text" class="cpm" value="2" name="cpm"/></td>
<td><input type="text" class="impression" value="1000" name="impression"/></td>
    <td><input type="text" class="ctr" value="220" name="ctr"/></td>
    <td><input type="text" class="vtr" value="220" name="vtr"/></td>
    <td><input type="text" class="uniqueReachPercent" value="220" name="uniqueReachPercent"/></td>
    <td><input type="text" class="uniqueReach" value="220" name="uniqueReach"/></td>
    <td><input type="text" class="KPIImpact" value="220" name="KPIImpact"/></td>
<td><input type="text" class="MinImpact" value="220" name="MinImpact"/></td>

</tr>
</tbody>
<tfoot>
<tr>
<td></td>
<td></td>
<td></td>
<td><input type="text" class="grdtot" value="" name=""/></td>
</tr>
</tfoot>
</table>
</body>
</html>

Ouput :


Wednesday, April 10, 2019

insert delete update and display in asp.net using jquery ajax.

In this article i have explain how to insert data into database using ajax and jquery, update data using ajax jquery, delete partcular row using ajax jquery and display data using ajax jquey.

Create the test database into sql server and create the table.

 create tblProduct(
     id int identity(1,1) primary key,
     title nvarchar(200),
     code nvarchar(200),
     quantity int,
     price int,
     decription nvarchar(200),
     image nvarchar(200),
        );

Create the product class for get and set product attributes

 public class Product
    {
        public int id { get; set; }
        public string title { get; set; }
        public string code { get; set; }
        public int quantity { get; set; }
        public int price { get; set; }
        public string decription { get; set; }
        public string image { get; set; }
    }

Create productBL class for performing business logic

public class ProductBL
    {
        public static string StringCon = null;
        SqlConnection conn = null;
        public ProductBL()
        {
            StringCon = ConfigurationSettings.AppSettings["ConnectionString"];
            conn = new SqlConnection(StringCon);
        }
        public bool insertProduct(Product p)
        {
            try
            {
                conn.Open();
                string sql = "insert into tblProduct(" +
                                "title," +
                                "code," +
                                "quantity," +
                                "price," +
                                "decription," +
                                "image" +
                                ") values(" +
                                "@title," +
                                "@code," +
                                "@quantity," +
                                "@price," +
                                "@decription," +
                                "@image" +
                                ")";
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("@title", p.title);
                cmd.Parameters.AddWithValue("@code", p.code);
                cmd.Parameters.AddWithValue("@quantity", p.quantity);
                cmd.Parameters.AddWithValue("@price", p.price);
                cmd.Parameters.AddWithValue("@decription", p.decription);
                cmd.Parameters.AddWithValue("@image", p.image);
                int i = cmd.ExecuteNonQuery();
                if(i>0)
                {
                    return true;
                }
            } catch(Exception ex)
            {

            } finally
            {
                conn.Close();
            }
            return false;
        }
        public bool updateProduct(Product p)
        {
            try
            {
                conn.Open();
                string sql = "update tblProduct set " +
                                "title=@title," +
                                "code=@code," +
                                "quantity=@quantity," +
                                "price=@price," +
                                "decription=@decription," +
                                "image=@image where id=@id";

                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("@title", p.title);
                cmd.Parameters.AddWithValue("@code", p.code);
                cmd.Parameters.AddWithValue("@quantity", p.quantity);
                cmd.Parameters.AddWithValue("@price", p.price);
                cmd.Parameters.AddWithValue("@decription", p.decription);
                cmd.Parameters.AddWithValue("@image", p.image);
                cmd.Parameters.AddWithValue("@id", p.id);
                int i = cmd.ExecuteNonQuery();
                if (i > 0)
                {
                    return true;
                }
            }
            catch (Exception ex)
            {

            }
            finally
            {
                conn.Close();
            }
            return false;
        }
        public List<Product> GetProducts()
        {
            List<Product> pList = new List<Product>();
            try
            {
                conn.Open();
                string sql = "select * from tblProduct";
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataReader sRd = cmd.ExecuteReader();
                if (sRd.HasRows)
                {
                    while(sRd.Read())
                    {
                        Product p = new Product();
                        p.id = (int)sRd["id"];
                        p.title = sRd["title"].ToString();
                        p.code = sRd["code"].ToString();
                        p.quantity =(int)sRd["quantity"];
                        p.price =(int)sRd["price"];
                        p.decription = sRd["decription"].ToString();
                        p.image = sRd["image"].ToString();
                        pList.Add(p);
                    }
                    return pList;
                }
            } catch(Exception ex)
            {

            } finally
            {
                conn.Close();
            }
            return pList;
        }
        public Product productDetails(int pId)
        {
            Product p = new Product();
            try
            {
                conn.Open();
                string sql = "select * from tblProduct where id="+pId+"";
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataReader sRd = cmd.ExecuteReader();
                if (sRd.HasRows)
                {
                    sRd.Read();
                        p.id = (int)sRd["id"];
                        p.title = sRd["title"].ToString();
                        p.code = sRd["code"].ToString();
                        p.quantity = (int)sRd["quantity"];
                        p.price = (int)sRd["price"];
                        p.decription = sRd["decription"].ToString();
                        p.image = sRd["image"].ToString();
                }
            }
            catch (Exception ex)
            {

            }
            finally
            {
                conn.Close();
            }
            return p;
        }
        public bool deleteProduct(int pId)
        {
            try
            {
                conn.Open();
                string sql = "delete from tblProduct where id="+pId+"";
                SqlCommand cmd = new SqlCommand(sql, conn);
                int i = cmd.ExecuteNonQuery();
                if(i>0)
                {
                    return true;
                }
            } catch(Exception ex)
            {

            } finally
            {
                conn.Close();
            }
            return false;
        }

    }

Add the asp page and paste the following code.

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>CURD Operation In Asp.net Using Ajax And Jquery </title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   <link rel="icon" href="icon.png" type="image/gif" sizes="16x16"/>
    <script src="js/CURD-Ajax-Jquery.js"></script>
    <link rel="stylesheet" href="css/bootstrap.min.css"/>
    <style>
        .input-box{
                width: 100%;
                padding: 1rem;
                border-radius: 5px;
                margin: .5rem;
                border:1px solid #ddd;
        }
        .btn_{
                padding: 1rem 3rem;
                border: 1px solid;
                border-radius: 5px;
                margin: .5rem .5rem;
        }
    </style>
</head>
<body>
        <div class="container">
            <div class="row">
                <div class="col-lg-12">
                    <div class="panel-heading">
                        <h2>Add Product Details</h2>
                        <asp:Label ID="lblWarning" runat="server"  style="color:red;"></asp:Label>
                        <input type="hidden" id="txtpId" />
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-6">
                    <input type="text" id="txtTitle"  placeholder="Title" class="input-box" />
                </div>
                <div class="col-lg-6">
                    <input type="text" id="txtCode"  placeholder="Code" class="input-box" />
                </div>
                <div class="col-lg-6">
                    <input type="text" id="txtQty"  placeholder="Quantity" class="input-box"/>
                </div>
                <div class="col-lg-6">
                    <input type="text" id="txtPrice"  placeholder="Price" class="input-box"/>
                </div>
                <div class="col-lg-6">
                    <input type="text" id="txtDescription"  placeholder="Description" class="input-box"/>
                </div>
           
                </div>
            <div class="row">
                <div class="col-lg-6">
                    <input type="submit" id="btnSave" class="btn_ btn-primary" title="Save" value="Save" />
                    <input type="submit" id="btnUpdate"  class="btn_ btn-primary" title="Update" value="Update" />
                </div>
         
            </div>
            <div class="row">
                <div class="col-lg-12">
                    <div id="productList">

                    </div>
                </div>
            </div>
        </div>
 
</body>

</html>

C# Code 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Tutorials
{
    public partial class CURD_Using_Ajax_Jquery : System.Web.UI.Page
    {
        public static Product p = null;
        public static ProductBL pBL = new ProductBL();
        public static List<Product> pList = new List<Product>();
        protected void Page_Load(object sender, EventArgs e)
        {

        }
       
        [System.Web.Services.WebMethod]
        public static string insertProduct(string pTitle, string pCode,string pPrice,string pQty,string pDescription)
        {
            p = new Product();
            p.title = pTitle;
            p.code = pCode;
            p.price = Int32.Parse(pPrice);
            p.quantity =Int32.Parse(pQty);
            p.decription = pDescription;
            p.image = "";
            if (pBL.insertProduct(p))
            {
                //;//projectDetailsMessage
                return "1";
            }
            else
            {
                return "0";
            }
        }
        [System.Web.Services.WebMethod]
        public static string updateProduct(int pId, string pTitle, string pCode, string pPrice, string pQty, string pDescription)
        {
            p = new Product();
            //p.id =Int32.Parse(pId);
            p.id = pId;
            p.title = pTitle;
            p.code = pCode;
            p.price = Int32.Parse(pPrice);
            p.quantity = Int32.Parse(pQty);
            p.decription = pDescription;
            p.image = "";
            if (pBL.updateProduct(p))
            {
                //;//projectDetailsMessage
                return "1";
            }
            else
            {
                return "0";
            }
        }
        [System.Web.Services.WebMethod]
        public static string deleteProduct(int Id)
        {
            if (pBL.deleteProduct(Id))
            {
                return "1";
            }
            return "0";
        }

        [System.Web.Services.WebMethod]
        public static string getProducts()
        {
            pList = pBL.GetProducts();
            var jsonSerializer = new JavaScriptSerializer();
            string data = jsonSerializer.Serialize(pList);
            return data;
        }
        [System.Web.Services.WebMethod]
        public static string getProductById(string Id)
        {
            int id = Int32.Parse(Id);
            p = pBL.productDetails(id);
            var jsonSerializer = new JavaScriptSerializer();
            string data = jsonSerializer.Serialize(p);
            return data;
        }
    }

}

Create the javascript file and paste the following code.

getProducts();
$(function () {
    $("#btnUpdate").hide();
    $("#btnSave").click(function () {
        insertRecord();
    });
    $("#btnUpdate").click(function () {
        updateRecord();
        $("#btnUpdate").hide();
       $("#btnSave").show();
    });

    $(".edit").click(function () {
       // clearTextBox();
        $("#btnSave").hide();
        $("#btnUpdate").show();
        var id = $.trim($(this).attr("pId"));
        getProductById(id);
    });
    $(".delete").click(function () {
        var id = $.trim($(this).attr("pId"));
        deleteRecord(id);
    });
});
//Clear All Text Box 
function clearTextBox() {
    $("#txtTitle").val("");
    $("#txtCode").val("");
    $("#txtQty").val("");
    $("#txtPrice").val("");
    $("#txtDescription").val("");
}
//Insert Record
function insertRecord() {
    var pTitle = $("#txtTitle").val();
    var pCode = $("#txtCode").val();
    var pQty = $("#txtQty").val();
    var pPrice = $("#txtPrice").val();
    var pDescription = $("#txtDescription").val();
    if (pTitle === "") {
        alert("Product title are required!");
        return;
    }
    if (pCode === "") {
        alert("Product code are required!");
        return;
    }
    if (pQty === "") {
        alert("Product Quantity are required!");
        return;
    }
    if (pPrice === "") {
        alert("Product price are required!");
        return;
    }
    if (pDescription === "") {
        alert("Product description are required!");
        return;
    }
    var obj = {};
    obj.pTitle = pTitle;
    obj.pCode = pCode;
    obj.pPrice = pPrice;
    obj.pQty = pQty;
    obj.pDescription = pDescription;
    $.ajax({
        url: 'CURD-Using-Ajax-Jquery.aspx/insertProduct',
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify(obj),
        success: function (d) {
            getProducts();
            clearTextBox();
        },
        error: function (xhr, textStatus, errorThrown) {
            console.log("error: " + errorThrown);
        }
    });
}
//update record
function updateRecord() {
    var pId = $("#txtpId").val();
    var pTitle = $("#txtTitle").val();
    var pCode = $("#txtCode").val();
    var pQty = $("#txtQty").val();
    var pPrice = $("#txtPrice").val();
    var pDescription = $("#txtDescription").val();
    if (pTitle === "") {
        alert("Product title are required!");
        return;
    }
    if (pCode === "") {
        alert("Product code are required!");
        return;
    }
    if (pQty === "") {
        alert("Product Quantity are required!");
        return;
    }
    if (pPrice === "") {
        alert("Product price are required!");
        return;
    }
    if (pDescription === "") {
        alert("Product description are required!");
        return;
    }
    var obj = {};
    obj.pId = pId;
    obj.pTitle = pTitle;
    obj.pCode = pCode;
    obj.pPrice = pPrice;
    obj.pQty = pQty;
    obj.pDescription = pDescription;
    $.ajax({
        url: 'CURD-Using-Ajax-Jquery.aspx/updateProduct',
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify(obj),
        success: function (d) {
            getProducts();
            clearTextBox();
        },
        error: function (xhr, textStatus, errorThrown) {
            console.log("error: " + errorThrown);
        }
    });
}
//delete record
function deleteRecord(id) {
    $.ajax({
        url: 'CURD-Using-Ajax-Jquery.aspx/deleteProduct',
        data: "{ 'Id': '" + id + "'}",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            getProducts();
        },
        error: function (data, status, jqXHR) { alert(jqXHR); }
    });
}
//get all records
function getProducts() {
    $.ajax({
        type: "POST",
        url: "CURD-Using-Ajax-Jquery.aspx/getProducts",
        data: '{}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function OnSuccess(response) {
            var parsed = $.parseJSON(response.d);
            var html = "";
            html += "<table style='width:100%;padding:1rem;'><tr><th>Title</th><th>Code</th><th>Price</th><th>Action</th></tr>";
            $.each(parsed, function (i, jsondata) {
                html += "<tr><td>" + jsondata.title + "</td><td>" + jsondata.code + "</td><td>" + jsondata.price + "</td><td><a href='javascript:void(0);' pId='" + jsondata.id + "' class='edit'>Edit</a>  || <a href='javascript:void(0);' pId='" + jsondata.id + "' class='delete'>Delete</a> </td></tr>";
            });
            html += "</table>";
            $("#productList").html(html);
        },
        failure: function (response) {
            alert(response.d);
        }
    });
}

//get particular record 
function getProductById(id) {
    $.ajax({
        url: 'CURD-Using-Ajax-Jquery.aspx/getProductById',
        data: "{ 'Id': '" + id + "'}",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            var p = $.parseJSON(response.d);
            $("#txtpId").val(p.id);
            $("#txtTitle").val(p.title);
            $("#txtCode").val(p.code);
            $("#txtQty").val(p.quantity);
            $("#txtPrice").val(p.price);
            $("#txtDescription").val(p.decription);
        },
        error: function (data, status, jqXHR) { alert(jqXHR); }
    });
}



Tuesday, March 5, 2019

JQuery Ui choose item from given list


In this article, I have explain how to choose single itme from list of item using jquery.
In this example we have list coureses we want select one course from given list of course and get the value of selected course.


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
    <title>jQuery ui-choose  Examples</title>
<style>
.selected > span {
    background: #4285F4;
    color: #fff;
}

.choose-option ul {
    display: inline;
    list-style: none;
}

.choose-option li {
   list-style:none;
   padding:5px;
}
.choose-option li.selected {
    color:#4285F4;
}

li > span{
    color:#fff;
    padding:1px 5px;
    margin-left:5px;
}

</style>
</head>

<body>
<ul class="choose-option" id="cooseCourse">
                        <li>Java <span>&#10003;</span> </li>
                        <li>C# <span>&#10003;</span> </li>
                        <li> PHP <span>&#10003;</span> </li>
                        <li> Python <span>&#10003;</span></li>
                        <li> ASP<span>&#10003;</span> </li>
                    </ul>

</body>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="JS/ui-choose.js"></script>
    <script>
        $('.choose-option').ui_choose();
        $('#cooseCourse').click(function () {
            var val = $("ul li.selected").html();
            var coures = val.split("<");
            alert("Selected Course : " + coures[0]);
        });
    </script>
</html>

create a javascript file and add following code to it.

/**
 * ui-choose
 * 
 */
; + function($) {
    "use strict";
    var defaults = {
        itemWidth: null,
        skin: '',
        multi: false,
        active: 'selected',
        full: false, 
        colNum: null, 
        dataKey: 'ui-choose', 
        change: null, 
        click: null 
    };
    /**
     * ui-choose
     */
    $.fn.ui_choose = function(options) {
        var _this = $(this),
            _num = _this.length;
        if (_num === 1) {
            return new UI_choose(_this, options);
        };
        if (_num > 1) {
            _this.each(function(index, el) {
                new UI_choose($(el), options);
            })
        }
    };

    /**
     * UI_choose
     * @param {[jQuery]} el  [jQuery]
     * @param {[object]} opt []
     */
    function UI_choose(el, opt) {
        this.el = el;
        this._tag = this.el.prop('tagName').toLowerCase();
        this._opt = $.extend({}, defaults, opt);

        return this._init();
    }

    // UI_choose 
    UI_choose.prototype = {

        // init
        _init: function() {
            var _data = this.el.data(this._opt.dataKey);
            if (_data)
                return _data;
            else
                this.el.data(this._opt.dataKey, this);

            if (this._tag == 'select') {
                this.multi = this.el.prop('multiple');
            } else {
                this.multi = this.el.attr('multiple') ? !!this.el.attr('multiple') : this._opt.multi;
            }

            var _setFunc = this['_setHtml_' + this._tag];
            if (_setFunc) {
                _setFunc.call(this);
            }
            if (this._opt.full) {
                this._wrap.addClass('choose-flex');
            }
            this._wrap.addClass(this._opt.skin);
            if (this.multi && !this._opt.skin)
                this._wrap.addClass('choose-type-right');
            this._bindEvent(); 
        },

        _setHtml_ul: function() {
            this._wrap = this.el;
            this._items = this.el.children('li');
            if (this._opt.itemWidth) {
                this._items.css('width', this._opt.itemWidth);
            }
        },

        _setHtml_select: function() {
            var _ohtml = '<ul class="ui-choose">';
            this.el.find('option').each(function(index, el) {
                var _this = $(el),
                    _text = _this.text(),
                    _value = _this.prop('value'),
                    _selected = _this.prop('selected') ? 'selected' : '',
                    _disabled = _this.prop('disabled') ? ' disabled' : '';
                _ohtml += '<li title="' + _text + '" data-value="' + _value + '" class="' + _selected + _disabled + '">' + _text + '</li> ';
            });
            _ohtml += '</ul>';
            this.el.after(_ohtml);

            this._wrap = this.el.next('ul.ui-choose');
            this._items = this._wrap.children('li');
            if (this._opt.itemWidth) {
                this._items.css('width', this._opt.itemWidth);
            }
            this.el.hide();
        },

        _bindEvent: function() {
            var _this = this;
            _this._wrap.on('click', 'li', function() {
                var _self = $(this);
                if (_self.hasClass('disabled'))
                    return;

                if (!_this.multi) { // single select
                    var _val = _self.attr('data-value') || _self.index();
                    _this.val(_val);
                    _this._triggerClick(_val, _self);
                } else { // multiple
                    _self.toggleClass(_this._opt.active);
                    var _val = [];
                    _this._items.each(function(index, el) {
                        var _el = $(this);
                        if (_el.hasClass(_this._opt.active)) {
                            var _valOrIndex = _this._tag == 'select' ? _el.attr('data-value') : _el.index();
                            _val.push(_valOrIndex);
                        }
                    });
                    _this.val(_val);
                    _this._triggerClick(_val, _self);
                }
            });
            return _this;
        },

        _triggerChange: function(value, item) {
            item = item || this._wrap;
            this.change(value, item);
            if (typeof this._opt.change == 'function')
                this._opt.change.call(this, value, item);
        },

        _triggerClick: function(value, item) {
            this.click(value, item);
            if (typeof this._opt.click == 'function')
                this._opt.click.call(this, value, item);
        },

        _val_select: function(value) {
            // getValue
            if (arguments.length === 0) {
                return this.el.val();
            }
            // setValue
            var _oValue = this.el.val();
            if (!this.multi) { // single select
                var _selectedItem = this._wrap.children('li[data-value="' + value + '"]');
                if (!_selectedItem.length)
                    return this;
                this.el.val(value);
                _selectedItem.addClass(this._opt.active).siblings('li').removeClass(this._opt.active);
                if (value !== _oValue) {
                    this._triggerChange(value);
                }
            } else { // multiple select
                if (value == null || value == '' || value == []) {
                    this.el.val(null);
                    this._items.removeClass(this._opt.active);
                } else {
                    value = typeof value == 'object' ? value : [value];
                    this.el.val(value);
                    this._items.removeClass(this._opt.active);
                    for (var i in value) {
                        var _v = value[i];
                        this._wrap.children('li[data-value="' + _v + '"]').addClass(this._opt.active);
                    }
                }
                if (value !== _oValue) {
                    this._triggerChange(value);
                }
            }
            // multiple
            return this;
        },

        _val_ul: function(index) {
            // getValue
            if (arguments.length === 0) {
                var _oActive = this._wrap.children('li.' + this._opt.active);
                if (!this.multi) { // single select
                    return _oActive.index() == -1 ? null : _oActive.index();
                } else { // single select
                    if (_oActive.length == 0) {
                        return null;
                    }
                    var _this = this,
                        _val = [];
                    _oActive.each(function(index, el) {
                        var _el = $(el);
                        if (_el.hasClass(_this._opt.active)) {
                            _val.push(_el.index());
                        }
                    });
                    return _val;
                }
            }
            // setValue
            var _oIndex = this._val_ul();
            if (!this.multi) { // single select
                var _selectedItem = this._wrap.children('li').eq(index);
                if (!_selectedItem.length)
                    return this;
                _selectedItem.addClass(this._opt.active).siblings('li').removeClass(this._opt.active);
                if (index !== _oIndex) {
                    this._triggerChange(index, _selectedItem);
                }
            } else { // multiple select
                if (index == null || index == '' || index == []) {
                    this._items.removeClass(this._opt.active);
                } else {
                    index = typeof index == 'object' ? index : [index];
                    this._items.removeClass(this._opt.active);
                    for (var i in index) {
                        var _no = index[i];
                        this._wrap.children('li').eq(_no).addClass(this._opt.active);
                    }
                }
                if (index !== _oIndex) {
                    this._triggerChange(index);
                }
            }
            // multiple
            return this;
        },

        val: function() {
            return this['_val_' + this._tag].apply(this, arguments);
        },

        change: function(value, item) {},

        click: function(value, item) {},

        hide: function() {
            this._wrap.hide();
            return this;
        },

        show: function() {
            this._wrap.show();
            return this;
        },

        selectAll: function() {
            if (!this.multi)
                return this;
            if (this._tag == 'select') {
                this.el.find('option').not(':disabled').prop('selected', true);
                var _val = this.el.val();
                this.val(_val);
            } else {
                var _val = [];
                this._items.not('.disabled').each(function(index, el) {
                    _val.push(index);
                });
                this.val(_val);
            }
            return this;
        }
    };
}(jQuery);





Tuesday, March 20, 2018

Send html attribute value from one page to another page using jquery

<html>
    <head>
        <title>Jquery Example</title>
    </head>
    <body>
        <form id="page1_form" name="page1_form" method="post">
            <h2>Send html attribute value from one page to another page using jquery</h2>
            <input type="hidden" name="Id" value="-1" />
            <input type="button" class="btnButton" name="btn" value='btn' id="5" >
        </form>
    </body>
</html>
<script>
$(document).ready(function() {
    $("input.btnButton:button").click(function () {
        ID = $(this).attr("id");
        if (parseInt(ID) > 0) {
            $("#page1_form input[name=Id]").val(ID);
            $("#page1_form").attr("action", "page2.php");
            $("#page1_form").submit();
        }
    });
    });
</script>

Featured Post

What is JavaScript? What is the role of JavaScript engine?

  The JavaScript is a Programming language that is used for converting static web pages to interactive and dynamic web pages. A JavaScript e...