осы js/jQuery-дің кез-келген біреуін дұрыс көру мүмкін бе?

Пайдаланушыдан жүйе параметріне байланысты түймені басуды растауды сұрайтын келесі сценарий бар.

Жүйе параметрі артынан кодтан жасырылған өріске сақталады.

Белгілеу:


cs:

//Read the confirm on approval setting
hfConfirmOnApproval.Value = Objects.Engine.Settings.Instance.ConfirmOnApproval.ToString();

js:

//Get whether to confirm on approval
var _confirmOnApproval = new Boolean($('#hfConfirmOnApproval').val());

if ( _confirmOnApproval ? confirm('Are you sure you want to approve this item?') : true ) 
{

   //do work

}

Мәселе мынада, _confirmOnApproval жалған деп орнатылған болса да, растау хабары көрсетіледі.

Мен тек қана хабарламаның терезесінің шын болады деп орнатылғанын көргім келеді.

Қазіргі уақытта _ConfirmOnApproval жалған

ШЕШІМ:

js:

var _confirmOnApproval = $('#<%=hfConfirmOnApproval.ClientID %>').val() == "True" ? true : false;

if ( _confirmOnApproval  ? confirm('Are you sure you want to approve this item?') : true ) {
//Do work
}
1

5 жауаптар

Бұл Boolean нысанын жасау үшін new Boolean пайдаланғаныңыздың себебі және typeof _confirmOnApproval қайтаратыны «Object»:

var x = new Boolean(false); //Boolean object
if(x) {
   console.log("hello"); //This will always execute
}
var y = false; //Literal boolean primitive
if(y) {
   console.log("hello"); //This won't
}

new Boolean файлынан құтылуға және мәнді салыстыруға болады:

if(_confirmOnApproval == "False")
2
қосылды
Ия, бұл жақсы жұмыс істеу керек!
қосылды автор James Allardice, көзі
oh, ok, сондықтан оны жаңа Boolean («») конструкторы, бұл жағдайда оны қалай жасауға болады? Бұл жұмыс ... болар еді _confirmOnApproval = $ ('# hfConfirmOnApproval'). val() == «Шын»? true: жалған;
қосылды автор WraithNath, көзі
Немесе тіпті жай ғана var _confirmOnApproval = ($ ('# hfConfirmOnApproval'). Val() == «True»);
қосылды автор cspolton, көзі

Джеймснің жауаптарына ұқсас, егер бар болса, логикалық жағдайды нақты тексеру үшін қолданыстағы кодты өзгерту қажет

var _confirmOnApproval = new Boolean($('#hfConfirmOnApproval').val());
if ( _confirmOnApproval === true ? confirm('Are you sure you want to approve this item?') : true ) 
{
   //do work
}
1
қосылды
Рахмет, қазір ол сұрыпталды :)
қосылды автор WraithNath, көзі

asp: HiddenField ID төлсипаты әрдайым input id төлсипаты сияқты бірдей болмайды.

0
қосылды

Мәселе мынада, бұл әрқашан құндылығы болады ... бұл құндылықты ұзартуға тырысыңыз, бұл, бәлкім, жұмыс істейді.

0
қосылды
Егер сіз (_confirmOnApproval.Length = 4? Растау ('...'): true), оны жұмыс істеуге тиіссіз бе?
қосылды автор WraithNath, көзі

Мынаны көріңіз:

var _confirmOnApproval = $('input[type=hidden][id$=hfConfirmOnApproval]').val();

if ( _confirmOnApproval === "False" ? confirm('Are you sure you want to approve this item?') : true ) 
{

   //do work

}
0
қосылды