javascript - JQuery এর সাথে একটি ড্রপ-ডাউন তালিকা নির্বাচিত মান পরিবর্তন করুন




html-select (11)

তাই আমি এটি পরিবর্তন করেছি যাতে এটি এখন সেটটাইমআউট ব্যবহার করে 300 মিলিসেকেন্ডের পরে চালানো হয়। এখন কাজ করা মনে হচ্ছে।

একটি অজ্যাক্স কল থেকে তথ্য লোড করার সময় আমি এই অনেক রান করেছি। আমিও নেট ব্যবহার করি, এবং jQuery সিলেক্টর ব্যবহার করার সময় ক্লায়েন্ট আইডি-এ সামঞ্জস্য করতে সময় লাগে। আপনার যে সমস্যাটি রয়েছে তা সংশোধন করতে এবং একটি setTimeout সম্পত্তিটি এড়াতে এড়াতে, আপনি কেবল অ্যাজাক্স কলটিতে " async: false " setTimeout পারেন এবং এটি DOM কে আপনার যুক্ত করা বস্তুর কাছে যথেষ্ট সময় দেবে নির্বাচন করুন। নীচে একটি ছোট নমুনা:

$.ajax({
    type: "POST",
    url: document.URL + '/PageList',
    data: "{}",
    async: false,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (response) {
        var pages = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

        $('#locPage' + locId).find('option').remove();

        $.each(pages, function () {
            $('#locPage' + locId).append(
                $('<option></option>').val(this.PageId).html(this.Name)
            );
        });
    }
});

আমি পরিচিত মান সঙ্গে একটি ড্রপ ডাউন তালিকা আছে। আমি যা করার চেষ্টা করছি সেটিকে একটি বিশেষ মান থেকে ড্রপ ডাউন তালিকা সেট করে যা আমি জানি jQuery ব্যবহার করে বিদ্যমান। নিয়মিত জাভাস্ক্রিপ্ট ব্যবহার করে, আমি এমন কিছু করবো:

ddl = document.getElementById("ID of element goes here");
ddl.value = 2; // 2 being the value I want to set it too.

যাইহোক, আমাকে jQuery এর সাথে এটি করতে হবে, কারণ আমি আমার নির্বাচক (নির্বোধ ASP.NET ক্লায়েন্ট আইডস ...) এর জন্য CSS শ্রেণী ব্যবহার করছি।

এখানে কয়েকটি জিনিস আমি চেষ্টা করেছি:

$("._statusDDL").val(2); // Doesn't find 2 as a value.
$("._statusDDL").children("option").val(2) // Also failed.

আমি কিভাবে jQuery এর সাথে এটা করতে পারি?

হালনাগাদ

তাই এটি সক্রিয় হিসাবে, আমি এটি সঙ্গে প্রথমবার অধিকার ছিল:

$("._statusDDL").val(2);

যখন আমি উপরে সতর্কতা রাখি তখন এটি জরিমানা কাজ করে, কিন্তু যখন আমি সতর্কতা সরান এবং সম্পূর্ণ গতিতে এটি চালানো করি, তখন আমি ত্রুটিটি পেতে পারি

নির্বাচিত সম্পত্তি সেট করা যায়নি। অবৈধ সূচক

আমি নিশ্চিত নই যে এটি jQuery বা ইন্টারনেট এক্সপ্লোরার 6 এর সাথে একটি বাগ কিনা (আমি ইন্টারনেট এক্সপ্লোরার 6 অনুমান করছি), কিন্তু এটি অত্যন্ত বিরক্তিকর।


অন্য একটি বিকল্প। নেটতে কন্ট্রোল প্যারামি ক্লায়েন্ট আইডি = "স্ট্যাটিক" সেট করা এবং তারপরে আপনি যে আইডি সেট করেন তার মাধ্যমে আপনি JQuery এ বস্তুটি অ্যাক্সেস করতে পারেন।


আমার ক্ষেত্রে আমি এটি .attr () পদ্ধতি ব্যবহার করে কাজ করতে সক্ষম হয়েছিলাম।

$("._statusDDL").attr("selected", "");

আমি ক্লায়েন্ট ids পেতে একটি প্রসারিত ফাংশন ব্যবহার, তাই ভালো:

$.extend({
    clientID: function(id) {
        return $("[id$='" + id + "']");
    }
});

তারপর আপনি এই মত jQuery এএসপি.NET নিয়ন্ত্রণ কল করতে পারেন:

$.clientID("_statusDDL")

এই সমাধানগুলি মনে করে যে আপনার ড্রপ ডাউন তালিকার প্রতিটি আইটেমের একটি ড্রপ ডাউন তালিকাতে তাদের অবস্থান সম্পর্কিত একটি মান () মূল্য রয়েছে।

এই ক্ষেত্রে না হলে জিনিষ একটু বেশি জটিল।

একটি ড্রপ ডাউন তালিকা নির্বাচিত সূচী পড়তে , আপনি এই ব্যবহার করবে:

$("#dropDownList").prop("selectedIndex");

একটি ড্রপ ডাউন তালিকা নির্বাচিত সূচী সেট করতে, আপনি এই ব্যবহার করবে:

$("#dropDownList").prop("selectedIndex", 1);

উল্লেখ্য যে prop () বৈশিষ্ট্যের জন্য JQuery v1.6 বা তার পরে প্রয়োজন।

দেখা যাক কিভাবে আপনি এই দুটি ফাংশন ব্যবহার করবে।

আপনি মাস নাম একটি ড্রপ ডাউন তালিকা ছিল অনুমান।

<select id="listOfMonths">
  <option id="JAN">January</option>
  <option id="FEB">February</option>
  <option id="MAR">March</option>
</select>

আপনি একটি "পূর্ববর্তী মাস" এবং "পরবর্তী মাস" বোতাম যুক্ত করতে পারেন, যা বর্তমানে নির্বাচিত ড্রপ ডাউন তালিকা আইটেমটি দেখায় এবং পূর্ববর্তী / পরবর্তী মাসে এটি পরিবর্তন করে:

<button id="btnPrevMonth" title="Prev" onclick="btnPrevMonth_Click();return false;" />
<button id="btnNextMonth" title="Next" onclick="btnNextMonth_Click();return false;" />

এবং এখানে জাভাস্ক্রিপ্ট যা এই বাটন চালানো হবে:

function btnPrevMonth_Click() {
    var selectedIndex = $("#listOfMonths").prop("selectedIndex");
    if (selectedIndex > 0) {
        $("#listOfMonths").prop("selectedIndex", selectedIndex - 1);
    }
}
function btnNextMonth_Click() {
    //  Note:  the JQuery "prop" function requires JQuery v1.6 or later
    var selectedIndex = $("#listOfMonths").prop("selectedIndex");
    var itemsInDropDownList = $("#listOfMonths option").length;

    //  If we're not already selecting the last item in the drop down list, then increment the SelectedIndex
    if (selectedIndex < (itemsInDropDownList - 1)) {
        $("#listOfMonths").prop("selectedIndex", selectedIndex + 1);
    }
}

JSON ডেটা সহ একটি ড্রপ ডাউন তালিকাটি কীভাবে বানাতে হবে তা দেখানোর জন্য নিম্নলিখিত সাইটটিও দরকারী:

http://mikesknowledgebase.com/pages/Services/WebServices-Page8.htm

ভু !!

আশাকরি এটা সাহায্য করবে.


কিছু সমাধান দেখার পরে, এটা আমার জন্য কাজ করে।

আমার কিছু মান নিয়ে একটি ড্রপ-ডাউন তালিকা আছে এবং আমি অন্য ড্রপ-ডাউন তালিকা থেকে একই মান নির্বাচন করতে চাই ... তাই প্রথমে আমি আমার প্রথম ড্রপ- selectIndex একটি পরিবর্তনশীল selectIndex

var indiceDatos = $('#myidddl')[0].selectedIndex;

তারপরে, আমি আমার দ্বিতীয় ড্রপ-ডাউন তালিকাতে সেই সূচীটি নির্বাচন করি।

$('#myidddl2')[0].selectedIndex = indiceDatos;

বিঃদ্রঃ:

আমি এই সংক্ষিপ্ত, নির্ভরযোগ্য, সাধারণ এবং মার্জিত সমাধান অনুমান।

কারণ আমার ক্ষেত্রে, আমি মান বৈশিষ্ট্যর পরিবর্তে নির্বাচিত বিকল্পের ডেটা বৈশিষ্ট্য ব্যবহার করছি। তাই যদি আপনার প্রতিটি বিকল্পের জন্য অনন্য মান না থাকে, তাহলে উপরের পদ্ধতিটি সবচেয়ে ছোট এবং মিষ্টি !!


লুকানো ক্ষেত্রের সাহায্যে আপনাকে এইরকম ব্যবহার করতে হবে:

$("._statusDDL").val(2);
$("._statusDDL").change();

অথবা

$("._statusDDL").val(2).change();

শুধু একটি FYI, আপনি এই কাজ করতে সিএসএস ক্লাস ব্যবহার করার প্রয়োজন নেই।

ক্লায়েন্টের সঠিক নিয়ন্ত্রণ নামটি পেতে আপনি নিম্নলিখিত কোডটি লিখতে পারেন:

$("#<%= statusDDL.ClientID %>").val("2");

ASP.NET jQuery এর ভিতরে সঠিকভাবে নিয়ন্ত্রণ আইডি রেন্ডার করবে।


শুধু সঙ্গে চেষ্টা করুন

$("._statusDDL").val("2");

এবং সঙ্গে না

$("._statusDDL").val(2);

jQuery এর ডকুমেন্টেশন বলেছেন:

[jQuery.val] সমস্ত রেডিও বোতাম, চেকবক্স এবং নির্বাচন বিকল্পগুলি পরীক্ষা করে বা নির্বাচন করে যা মানগুলির সেটের সাথে মিলে যায়।

এই আচরণ jQuery সংস্করণ 1.2 এবং উপরে।

আপনি সম্ভবত এই চান:

$("._statusDDL").val('2');

<asp:DropDownList id="MyDropDown" runat="server" />

$("select[name$='MyDropDown']").val()








html-select