次の規則を使用して、値のブール値/文字列を返すことはできません。
<input id="lol" type="text" value="ahh" />
<script>
function test() {
var flag = false;
if ($('#lol').val()) {
alert($('#lol').val()); //"sanity check - pass"
flag = true;
}
return flag;
};
function modal() {};
var m = new modal();
modal.prototype.init = function(x) {
this.input = x;
this.modals = {};
this.initModalFrames();
this.executeLogic();
}
modal.prototype.initModalFrames = function() {
for (i in this.input) {
this.modals[i] = {
handle : this.input[i].handle,
frame : this.input[i].frame,
logic : this.input[i].logic ? this.input[i].logic : null
};
}
}
modal.prototype.executeLogic= function() {
var s = this;
$.each(this.modals, function(i, o) {
if(s.modals[i].logic != null) {
var x = s.modals[i].logic.call();
if(x) {
alert('true');
}
else {
//Always evaluates to false
alert('false');
}
}
});
}
m.init([
{handle: '#handle1', frame: '#frame2', logic: function() {test();}},
]);
</script>
関数は何も返さないようで、常に false と評価されます。ここで何が間違っていますか?