Lookup setValue

IE6 tested, window.opener.document approved

by donabrams

HTML

By id:<br/>
<input type="text" id="test1"/><br/>
<input type="text" id="test2" value="FAILURE"/><br/>
<select id="test3">
    <option value="dfsdgdfg">FAILURE</option>
    <option value="failure">FAILURE</option>
    <option value="success">SUCCESS</option>
</select><br/>
<select id="test4">
    <option value="dfsdgdfg">FAILURE</option>
    <option value="success">SUCCESS</option>
    <option value="failure" selected="selected">FAILURE</option>
</select><br/>
By name:<br/>
<input type="text" name="test5"/><br/>
<input type="text" name="test6" value="FAILURE"/><br/>
<select name="test7">
    <option value="dfsdgdfg">FAILURE</option>
    <option value="success">SUCCESS</option>
    <option value="failure">FAILURE</option>
</select><br/>
<select name="test8">
    <option value="dfsdgdfg">FAILURE</option>
    <option value="success">SUCCESS</option>
    <option value="failure" selected="selected">FAILURE</option>
</select><br/>
By name w/ period:<br/>
<input type="text" name="first.test9"/><br/>
<input type="text" name="first.test10" value="FAILURE"/><br/>
<select name="first.test11">
    <option value="dfsdgdfg">FAILURE</option>
    <option value="success">SUCCESS</option>
    <option value="failure">FAILURE</option>
</select><br/>
<select name="first.test12">
    <option value="dfsdgdfg">FAILURE</option>
    <option value="success">SUCCESS</option>
    <option value="failure" selected="selected">FAILURE</option>
</select><br/>
First:<br/>
<form id="first">
    NOT <input type="text" name="test9"/><br/>
    NOT <input type="text" name="test10" value="FAILURE"/><br/>
    <select name="test11">
        <option value="dfsdgdfg">SUCCESS</option>
        <option value="failure">FAILURE</option>
        <option value="success">FAILURE</option>
    </select><br/>
    <select name="test12">
        <option value="dfsdgdfg">FAILURE</option>
        <option value="success">FAILURE</option>
        <option value="failure" selected="selected">SUCCESS</option>
   ...

JavaScript

$(function() {
    var setValue = function(popName, val,doc) {
        doc = doc ? doc : document;
        popDest = $("#" + popName,doc);
        popDest = popDest.length ? popDest : $("[name='" + popName + "']:input",doc);
        if (!(popDest.length) && popName.indexOf('.')) {
            var containerNameOrId = popName.substring(0, popName.indexOf('.'));
            var fieldNameOrId = popName.substring(popName.indexOf('.') + 1);
            var container = $("#" + containerNameOrId,doc);
            container = container.length ? container : $("form[name='" + containerNameOrId + "']",doc);
            if (container.length) {
                popDest = $("#" + fieldNameOrId, container);
                popDest = popDest.length ? popDest : $("[name='" + fieldNameOrId + "']:input", container);
            }
        }
        if (popDest) {
            if (0 <=  $.inArray(popDest.attr('nodeName'),['INPUT','SELECT','BUTTON','TEXTAREA'])) {
                popDest.attr('value', val);
            } else {
                popDest.html(val);
            }
        }
    };
    setValue("test1", "success");
    setValue("test2", "success");
    setValue("test3", "success");
    setValue("test4", "success");
    setValue("test5", "success");
    setValue("test6", "success");
    setValue("test7", "success");
    setValue("test8", "success");
    setValue("first.test9", "success");
    setValue("first.test10", "success");
    setValue("first.test11", "success");
    setValue("first.test12", "success");
    setValue("second.test9", "success");
    setValue("second.test10", "success");
    setValue("second.test11", "success");
    setValue("second.test12", "success");
    setValue("third.test9", "success");
    setValue("third.test10", "success");
    setValue("third.test11", "success");
    setValue("third.test12", "success");
    setValue("test13", "success");
    setValue("test14", "success");
});