تعيين قيمة الحقل المخفي في نموذج باستخدام jQuery's ".val ()" لا يعمل


6 Answers

إذا كنت تواجه مشكلة في تعيين قيمة حقل مخفي نظرًا لأنك تقوم بتمرير معرف له ، فهذا هو الحل:

بدلاً من $("#hidden_field_id").val(id) فقط يقوم $("input[id=hidden_field_id]").val(id) . لست متأكدا ما هو الفرق ، لكنه يعمل.

Question

كنت أحاول تعيين قيمة حقل مخفي في نموذج باستخدام jQuery ، ولكن دون نجاح.

هنا هو نموذج التعليمة البرمجية التي تشرح المشكلة. إذا احتفظ بنوع الإدخال إلى "نص" ، فإنه يعمل دون أي مشكلة. لكن تغيير نوع الإدخال إلى "مخفي" لا يعمل!

<html>

    <head>
        <script type="text/javascript" src="jquery.js">
        </script>
        <script type="text/javascript">
            $(document).ready(function() {
                $("button").click(function() {
                    $("input:text#texens").val("tinkumaster");
                });
            });
        </script>
    </head>

    <body>
        <p>
            Name:
            <input type="hidden" id="texens" name="user" value="texens" />
        </p>
        <button>
            Change value for the text field
        </button>
    </body>

</html>

لقد حاولت أيضًا الحل البديل التالي ، عن طريق تعيين نوع الإدخال إلى "نص" ثم استخدام نمط "display: none" لمربع الإدخال. لكن هذا يفشل أيضًا! يبدو أن jQuery لديه بعض المشاكل في تحديد حقول الإدخال المخفية أو غير المرئية.

أيه أفكار؟ هل هناك حل لهذا الأمر الذي يعمل بالفعل؟




في حالتي ، كنت أستخدم عددًا غير صحيح (عدد صحيح) لأن معلمة val () التي لا تعمل ، فالخدعة بسيطة مثل

$("#price").val('' + price);



كان عندي نفس المشكلة. الغريب جوجل الكروم وربما غيرها (لم تكن متأكدا) لم يعجبه

$("#thing").val(0);

input type="hidden" id="thing" name="thing" value="1" />

(لا تغيير)

$("#thing").val("0");

input type="hidden" id="thing" name="thing" value="1" />

(لا تغيير)

لكن هذا يعمل !!!!

$("#thing").val("no");

input type="hidden" id="thing" name="thing" value="no" />

التغيرات !!

$("#thing").val("yes");

input type="hidden" id="thing" name="thing" value="yes" />

التغيرات !!

يجب أن يكون "شيئًا"




ببساطة استخدام بناء الجملة أدناه للحصول على وتعيين

احصل على

//Script 
var a = $("#selectIndex").val();

هنا سوف يحمل متغير قيمة hiddenfield (selectindex)

جانب الخادم

<asp:HiddenField ID="selectIndex" runat="server" Value="0" />

جلس

var a =10;
$("#selectIndex").val(a);



كنت أواجه نفس المشكلة ، ووجدت ما هو الخطأ. لقد حددت HTML على النحو

<form action="url" method="post">
    <input type="hidden" id="email" />
<form>
<script>
    function onsomeevent()
    {
       $("#email").val("a@a.com");
    }
</script>

تؤدي قراءة قيم النموذج على الخادم دائمًا إلى جعل البريد الإلكتروني فارغًا. بعد خدش رأسي (والعديد من عمليات البحث) ، أدركت أن الخطأ لا يحدد الشكل / الإدخال بشكل صحيح. عند تعديل الإدخال (كما هو موضح أدناه) ، كان يعمل مثل السحر

<input type="hidden" id="email" name="email" />

إضافة إلى هذا الموضوع في حالة وجود مشكلة أخرى.




$('input[name=hidden_field_name]').val('newVal');

عملت بالنسبة لي ، عندما لا

$('input[id=hidden_field_id]').val('newVal');

ولا

$('#hidden_field_id').val('newVal');

فعل.




آخر هتكا هنا يضيع بعض وقتي ، لذلك اعتقدت أنني سوف تمر على طول الحافة. كان لدي حقل مخفي أعطيت معرفًا به. و [] الأقواس في الاسم (بسبب الاستخدام مع struts2) و selector $("#model.thefield[0]") لن يعثر على الحقل المخفي الخاص بي. إعادة تسمية المعرف لعدم استخدام الفترات والأقواس تسبب في أن يبدأ المختار في العمل. حتى في النهاية انتهى بي الأمر بمعرف model_the_field_0 بدلاً من ذلك وعمل المختار بشكل جيد.




Related