Side navigation
#13029 closed bug (notabug)
Opened December 11, 2012 08:38AM UTC
Closed December 11, 2012 02:23PM UTC
form attributes function ".val()" cannot set value with RegExp Backreference
| Reported by: | sugita takayuki <sugilog@gmail.com> | Owned by: | |
|---|---|---|---|
| Priority: | undecided | Milestone: | None |
| Component: | unfiled | Version: | 1.8.3 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
sample code:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
<p>case1</p>
<select id="period" name="period">
<option value="201301">2013/01</option>
<option value="201302">2013/02</option>
<option value="201303" selected>2013/03</option>
<option value="201304">2013/04</option>
</select>
<input type="text" id="period_field" name="period_field" value="201212" />
<p>case2</p>
<select id="period_with_var" name="period_with_var">
<option value="201301">2013/01</option>
<option value="201302">2013/02</option>
<option value="201303" selected>2013/03</option>
<option value="201304">2013/04</option>
</select>
<input type="text" id="period_field_with_var" name="period_field_with_var" value="201212" />
<p>case3</p>
<select id="period_with_raw" name="period_with_raw">
<option value="201301">2013/01</option>
<option value="201302">2013/02</option>
<option value="201303" selected>2013/03</option>
<option value="201304">2013/04</option>
</select>
<input type="text" id="period_field_with_raw" name="period_field_with_raw" value="201212" />
<script type="text/javascript">
jQuery(function(){
// case 1; use RegExp backreference.
if ( /period=(\\d{6})/.test(location.hash) ) {
console.log(RegExp.$1);
}
if ( /period=(\\d{6})/.test(location.hash) ) {
jQuery("#period").val(RegExp.$1);
}
if ( /period=(\\d{6})/.test(location.hash) ) {
jQuery("#period_field").val(RegExp.$1);
}
// case 2; use RegExp backreference with variable.
if ( /period=(\\d{6})/.test(location.hash) ) {
var period = RegExp.$1;
console.log(period);
jQuery("#period_with_var").val(period);
jQuery("#period_field_with_var").val(period);
}
});
// case 3; use raw javascript function.
var setVal = function(selector, _value) {
document.body.querySelector(selector).value = _value;
}
if ( /period=(\\d{6})/.test(location.hash) ) {
setVal("#period_with_raw", RegExp.$1);
}
if ( /period=(\\d{6})/.test(location.hash) ) {
setVal("#period_field_with_raw", RegExp.$1);
}
</script>
</body>
</html>
in this case, only case1 won't work.
1. save sample code into html file.
2. access on browser with fragment ( example: #period=201302 )
3. fields of case2 and case3 has value "201302", but select of case1 has value "201301"; text field of case1 has empty value.
Attachments (0)
Change History (1)
Changed December 11, 2012 02:23PM UTC by comment:1
| resolution: | → notabug |
|---|---|
| status: | new → closed |
Please ask for help on the forum.