| 220 | | MochiKit.DOM.formContents2 = function (elem/* = document */) { |
|---|
| 221 | | var names = []; |
|---|
| 222 | | var values = []; |
|---|
| 223 | | var m = MochiKit.Base; |
|---|
| 224 | | var self = MochiKit.DOM; |
|---|
| 225 | | if (typeof(elem) == "undefined" || elem == null) { |
|---|
| 226 | | elem = self._document; |
|---|
| 227 | | } else { |
|---|
| 228 | | elem = self.getElement(elem); |
|---|
| 229 | | } |
|---|
| 230 | | m.nodeWalk(elem, function (elem) { |
|---|
| 231 | | var name = elem.name; |
|---|
| 232 | | if (m.isNotEmpty(name)) { |
|---|
| 233 | | if (elem.tagName == "INPUT" |
|---|
| 234 | | && (elem.type == "radio" || elem.type == "checkbox") |
|---|
| 235 | | && !elem.checked |
|---|
| 236 | | ) { |
|---|
| 237 | | return null; |
|---|
| 238 | | } |
|---|
| 239 | | if (elem.tagName == "SELECT") { |
|---|
| 240 | | if (elem.type == "select-one") { |
|---|
| 241 | | var index = elem.selectedIndex; |
|---|
| 242 | | if (index >= 0) { |
|---|
| 243 | | var opt = elem.options[index]; |
|---|
| 244 | | names.push(name); |
|---|
| 245 | | values.push((opt.value) ? opt.value : opt.text); |
|---|
| 246 | | } |
|---|
| 247 | | } else { |
|---|
| 248 | | var opts = elem.options; |
|---|
| 249 | | for (var i=0; i < opts.length; i++) { |
|---|
| 250 | | var opt = opts[i]; |
|---|
| 251 | | alert("opt " + opts[i].value + " " + name); |
|---|
| 252 | | if (!opt.selected) { |
|---|
| 253 | | continue; |
|---|
| 254 | | } |
|---|
| 255 | | names.push(name); |
|---|
| 256 | | values.push((opt.value) ? opt.value : opt.text); |
|---|
| 257 | | } |
|---|
| 258 | | } |
|---|
| 259 | | } else { |
|---|
| 260 | | names.push(name); |
|---|
| 261 | | values.push(elem.value || ''); |
|---|
| 262 | | } |
|---|
| 263 | | return null; |
|---|
| 264 | | } |
|---|
| 265 | | return elem.childNodes; |
|---|
| 266 | | }); |
|---|
| 267 | | return [names, values]; |
|---|
| 268 | | }; |
|---|
| 269 | | |
|---|