Выбор списка уменьшается в размере по горизонтали, когда он пуст - PullRequest
1 голос
/ 01 мая 2010

У меня есть два списка выбора, и я могу перемещать элементы назад и вперед между ними, используя кнопки вперед (->) и назад (<-). Однако если в списке выбора нет элементов, его размер уменьшается по горизонтали. Любой способ сохранить список выбора фиксированного размера, независимо от того, содержит ли он какие-либо параметры или нет? </p>

Ниже приведен код:

<html>

<head>
<script language="JavaScript" type="text/javascript">
<!--

var NS4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) < 5);

function addOption(theSel, theText, theValue)
{
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  theSel.options[selLength] = newOpt;
}

function deleteOption(theSel, theIndex)
{ 
  var selLength = theSel.length;
  if(selLength>0)
  {
    theSel.options[theIndex] = null;
  }
}

function moveOptions(theSelFrom, theSelTo)
{

  var selLength = theSelFrom.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;

  var i;

  // Find the selected Options in reverse order
  // and delete them from the 'from' Select.
  for(i=selLength-1; i>=0; i--)
  {
    if(theSelFrom.options[i].selected)
    {
      selectedText[selectedCount] = theSelFrom.options[i].text;
      selectedValues[selectedCount] = theSelFrom.options[i].value;
      deleteOption(theSelFrom, i);
      selectedCount++;
    }
  }

  // Add the selected text/values in reverse order.
  // This will add the Options to the 'to' Select
  // in the same order as they were in the 'from' Select.
  for(i=selectedCount-1; i>=0; i--)
  {
    addOption(theSelTo, selectedText[i], selectedValues[i]);
  }

  if(NS4) history.go(0);
}

//-->
</script>
</head>
<body>


<form action="yourpage.asp" method="post">
<table border="0">
    <tr>
        <td width="70">
            <select name="sel1" size="10" multiple="multiple">
            <option value="1">Left1</option>
            <option value="2">Left2</option>
            <option value="3">Left3</option>
            <option value="4">Left4</option>
            <option value="5">Left5</option>
            </select>
        </td>
        <td align="center" valign="middle">
            <input type="button" value="--&gt;"
             onclick="moveOptions(this.form.sel1, this.form.sel2);" /><br />
            <input type="button" value="&lt;--"
             onclick="moveOptions(this.form.sel2, this.form.sel1);" />
        </td>
        <td>
            <select name="sel2" size="10" multiple="multiple">
            <option value="1">Right1</option>
            <option value="2">Right2</option>
            <option value="3">Right3</option>
            <option value="4">Right4</option>
            <option value="5">Right5</option>
            </select>
        </td>
    </tr>
</table>
</form>

</body>
</html>

1 Ответ

3 голосов
/ 01 мая 2010

Примените к ним свойство минимальной ширины.

Например:

<select name="sel1" size="10" multiple="multiple" style="min-width: 200px;">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...