feat(benchpress): add getStringParameter method to support text and radio inputs

This commit is contained in:
Jeff Cross 2015-01-15 10:51:47 -08:00
parent 39977bd3c2
commit a2b58202a0
2 changed files with 26 additions and 4 deletions

View File

@ -2,11 +2,27 @@ import {DOM, document, location} from 'facade/dom';
import {NumberWrapper, BaseException, isBlank} from 'facade/lang'; import {NumberWrapper, BaseException, isBlank} from 'facade/lang';
export function getIntParameter(name:string) { export function getIntParameter(name:string) {
var el = DOM.querySelector(document, `input[name="${name}"]`); return NumberWrapper.parseInt(getStringParameter(name), 10);
if (isBlank(el)) { }
export function getStringParameter(name:string) {
var els = DOM.querySelectorAll(document, `input[name="${name}"]`)
var value;
var el;
for (var i=0; i<els.length; i++) {
el = els[i];
if ((el.type !== 'radio' && el.type !== 'checkbox') || el.checked) {
value = el.value;
break;
}
}
if (isBlank(value)) {
throw new BaseException(`Could not find and input field with name ${name}`); throw new BaseException(`Could not find and input field with name ${name}`);
} }
return NumberWrapper.parseInt(el.value, 10);
return value;
} }
export function bindAction(selector:string, callback:Function) { export function bindAction(selector:string, callback:Function) {

View File

@ -7,8 +7,14 @@
var name = match[1]; var name = match[1];
var value = match[2]; var value = match[2];
var els = document.querySelectorAll('input[name="'+name+'"]'); var els = document.querySelectorAll('input[name="'+name+'"]');
var el;
for (var i=0; i<els.length; i++) { for (var i=0; i<els.length; i++) {
els[i].value = value; el = els[i];
if (el.type === 'radio' || el.type === 'checkbox') {
el.checked = el.value === value;
} else {
el.value = value;
}
} }
} }
})(); })();