ฉันจะเข้าถึงแอตทริบิวต์<input type="hidden">
ของแท็กvalue
โดยใช้ jQuery ได้อย่างไร
ฉันจะเข้าถึงแอตทริบิวต์<input type="hidden">
ของแท็กvalue
โดยใช้ jQuery ได้อย่างไร
คำตอบ:
คุณสามารถเข้าถึงค่าของฟิลด์ที่ถูกซ่อนด้วยval()
เช่นเดียวกับที่คุณสามารถทำได้ในองค์ประกอบอินพุตอื่น ๆ :
<input type="hidden" id="foo" name="zyx" value="bar" />
alert($('input#foo').val());
alert($('input[name=zyx]').val());
alert($('input[type=hidden]').val());
alert($(':hidden#foo').val());
alert($('input:hidden[name=zyx]').val());
ทั้งหมดนั้นมีความหมายเหมือนกันในตัวอย่างนี้
มีตัวเลือก jQuery สำหรับ:
// Get all form fields that are hidden
var hidden_fields = $( this ).find( 'input:hidden' );
// Filter those which have a specific type
hidden_fields.attr( 'text' );
type=""
จะทำให้คุณมีช่องใส่ทั้งหมดที่ซ่อนอยู่และกรองโดยผู้ที่มีที่เฉพาะเจาะจง
วิธีที่มีประสิทธิภาพมากที่สุดคือจาก ID
$("#foo").val(); //by id
คุณสามารถอ่านเพิ่มเติมได้ที่นี่:
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_CSS
https://developers.google.com/speed/docs/best-practices/rendering?hl=it#UseEfficientCSSSelectors
ในการรับค่าใช้:
$.each($('input'),function(i,val){
if($(this).attr("type")=="hidden"){
var valueOfHidFiled=$(this).val();
alert(valueOfHidFiled);
}
});
หรือ:
var valueOfHidFiled=$('input[type=hidden]').val();
alert(valueOfHidFiled);
ในการตั้งค่าใช้:
$('input[type=hidden]').attr('value',newValue);
ไม่มีอะไรพิเศษเกี่ยวกับ<input type="hidden">
:
$('input[type="hidden"]').val()
หากคุณต้องการเลือกเขตข้อมูลที่ซ่อนอยู่คุณสามารถเลือกผ่านตัวเลือกต่างๆของ jQuery:
<input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/>
$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
หากคุณมี HiddenField asp.net คุณจะต้อง:
วิธีเข้าถึงค่า HiddenField:
$('#<%=HF.ClientID%>').val() // HF = your hiddenfield ID
ในการตั้งค่า HiddenFieldValue
$('#<%=HF.ClientID%>').val('some value') // HF = your hiddenfield ID
ระวังถ้าคุณต้องการดึงค่าบูลีนจากฟิลด์ที่ซ่อนอยู่!
ตัวอย่างเช่น:
<input type="hidden" id="SomeBoolean" value="False"/>
(อินพุตเช่นนี้จะแสดงผลโดย ASP MVC หากคุณใช้@Html.HiddenFor(m => m.SomeBoolean)
)
จากนั้นต่อไปนี้จะส่งคืนสตริง'False'
ไม่ใช่บูลีน JS!
var notABool = $('#SomeBoolean').val();
หากคุณต้องการใช้บูลีนสำหรับตรรกะบางอย่างใช้ต่อไปนี้แทน:
var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
วิธีที่เป็นสากลมากที่สุดคือการใช้ค่าตามชื่อ ไม่สำคัญว่าอินพุตหรือเลือกชนิดองค์ประกอบของฟอร์ม
var value = $('[name="foo"]');