1
我正在開發使用HTML :: FormHandler表單一個Perl /催化劑的web應用程序的HTML :: FormHandler現場驗證。 我想在一個字段上做一個條件驗證,如果複選框被選中。基於其他領域的check'd狀態
下面的代碼是從我創造了我的形式使用一個角色。
has_field 'autosys_jobs.schedule.has_run_day_of_month' => (type=>'Boolean');
has_field 'autosys_jobs.schedule.run_day_of_month' => (type => 'PosInteger');
#Validation function for 'autosys_jobs.schedule.run_day_of_month'
sub validate_autosys_jobs_schedule_run_day_of_month {
my ($self, $field) = @_;
if($self->field('autosys_jobs.schedule.has_run_day_of_month')->value) {
#validate 'autosys_jobs.schedule.run_day_of_month'
}
}
我遇到的問題是,$self->field('autosys_jobs.schedule.has_run_day_of_month')->value
爲布爾字段總是返回即使它檢查0。
關於我在做什麼錯的任何想法?
是否被調用的驗證函數?因爲field(type =>'boolean')完全符合你的需求,所以我目前正在使用它,也就是說,checkbox check => field-> value是真的。 我問,因爲HTML :: Formhandler會自動使用field_ $字段名潛艇進行驗證,但它被稱爲「validate_autosys_jobs_schedule_run_day_of_month」,而你的領域是「autosys_jobs.schedule.has_run_day_of_month」(注意點) – bytepusher
是在驗證功能被稱爲。我證實了這一點,文檔指出用下劃線重命名任何點。 –
不知道。看起來像是唯一可能會出錯的東西,但我很高興看到它不是,而且你已經明白了。也許你下次應該提及所有相關信息;) – bytepusher